将数据从CSV复制到另一个CSV,并根据条件填充额外的列

时间:2017-01-23 13:44:11

标签: python pandas export-to-csv

输入:

Primary Key    Phone_No
1             9999999999  
2             999-999-9999 
3             024-999-8913

输出应为:

Primary Key Phone_No  String/Number
1       9999999999       Number
2       999-999-9999     String
3       024-999-8913     String

我的CSV文件有300万个数据。

如果有人可以帮助我在Pandas中编码,那将会很有帮助

2 个答案:

答案 0 :(得分:0)

如果只有numericstring值,我认为您可以to_numericisnull一起使用:

mask = pd.to_numeric(df.Phone_No, errors='coerce').isnull()
0    False
1     True
2     True
Name: Phone_No, dtype: bool

df['String/Number'] = np.where(mask, 'String','Number')
print (df)
   Primary Key      Phone_No String/Number
0            1    9999999999        Number
1            2  999-999-9999        String
2            3  024-999-8913        String

答案 1 :(得分:0)

您可以使用pandas.Series.str.isdigitnumpy.where

>>> df['String/Number'] = np.where(df['Phone_No'].str.isdigit(), 'Number', 'String')
>>> df
   PrimaryKey      Phone_No String/Number
0           1    9999999999        Number
1           2  999-999-9999        String
2           3  024-999-8913        String