本文介绍了 pandas :转换为数字,必要时创建NaN的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
说我在数据框中有一列,其中包含一些数字和一些非数字
Say I have a column in a dataframe that has some numbers and some non-numbers
>> df['foo']
0 0.0
1 103.8
2 751.1
3 0.0
4 0.0
5 -
6 -
7 0.0
8 -
9 0.0
Name: foo, Length: 9, dtype: object
如何将此列转换为np.float
,并让所有不是浮点的内容都转换为NaN
?
How can I convert this column to np.float
, and have everything else that is not float convert it to NaN
?
当我尝试时:
>> df['foo'].astype(np.float)
或
>> df['foo'].apply(np.float)
我得到ValueError: could not convert string to float: -
推荐答案
在熊猫中0.17.0
convert_objects
发出警告:
In pandas 0.17.0
convert_objects
raises a warning:
您可以使用 pd.to_numeric
方法,并将其应用于带有arg coerce
的数据框.
You could use pd.to_numeric
method and apply it for the dataframe with arg coerce
.
df1 = df.apply(pd.to_numeric, args=('coerce',))
或更合适:
df1 = df.apply(pd.to_numeric, errors='coerce')
编辑
以上方法仅对说明pandas 0.17.0的新功能:
这篇关于 pandas :转换为数字,必要时创建NaN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!