2017-01-23 5 views
1

に基づいて余分な列を移入入力:のデータのコピーや条件

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万データを持っています。誰かが私にパンダ

答えて

0

のコードを助けることができる場合

が参考になります私はnumericstring値場合はisnullto_numericを使用することができると思う:

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 
+0

電話番号に「 - 」、「(」または「)」がある場合はもう1つ条件o数字である。 –

+0

電話番号に「 - 」、「(」または「)」がある場合はもう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 
+0

電話番号に " - "、 "("または ")"がある場合はもう1つの条件として、数字と見なされます。 –

+0

それに応じて質問を調整してください。 –

関連する問題