假设我在dataframe中有一列,其中包含一些数字和一些非数字
>> 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
当我尝试的时候:
>> df['foo'].astype(np.float)
或
>> df['foo'].apply(np.float)
我得到了ValueError: could not convert string to float: -
发布于 2017-11-29 07:13:06
您可以简单地使用pd.to_numeric
并将error设置为coerce
,而不使用apply
df['foo'] = pd.to_numeric(df['foo'], errors='coerce')
发布于 2013-08-26 06:08:31
首先用None
替换所有字符串值,将它们标记为缺少的值,然后将其转换为浮点型。
df['foo'][df['foo'] == '-'] = None
df['foo'] = df['foo'].astype(float)
https://stackoverflow.com/questions/18434208
复制相似问题