far*_*awa 3 python string dataframe pandas
我有一个pandas.DataFrame包含string,float和int类型.
有没有办法将所有无法转换为float的字符串设置为NaN?
例如:
A B C D
0 1 2 5 7
1 0 4 NaN 15
2 4 8 9 10
3 11 5 8 0
4 11 5 8 "wajdi"
Run Code Online (Sandbox Code Playgroud)
至:
A B C D
0 1 2 5 7
1 0 4 NaN 15
2 4 8 9 10
3 11 5 8 0
4 11 5 8 NaN
Run Code Online (Sandbox Code Playgroud)
你可以使用pd.to_numeric和设置errors='coerce'
df['D'] = pd.to_numeric(df.D, errors='coerce')
哪个会给你:
A B C D
0 1 2 5.0 7.0
1 0 4 NaN 15.0
2 4 8 9.0 10.0
3 11 5 8.0 0.0
4 11 5 8.0 NaN
Run Code Online (Sandbox Code Playgroud)
不推荐使用的解决方案(仅适用于pandas <= 0.20):
df.convert_objects(convert_numeric=True)
Run Code Online (Sandbox Code Playgroud)
pandas.DataFrame.convert_objects
这是convert_objects源代码中的开发说明:# TODO: Remove in 0.18 or 2017, which ever is sooner.因此,如果您使用它,请不要将其作为长期解决方案.
| 归档时间: |
|
| 查看次数: |
2945 次 |
| 最近记录: |