pandas - Pandas 检测非数字数据类型
问题描述
我需要检测并防止任何非数字数据进入我的数据框。
例子:
value in out transf inc buy
0 208372 4206.84 4692.22 215976 725.41 105339.92
1 abs 0.00 1270.28 13602 1151.29 0.00
2 230172 0.00 1930.40 21539 1938.59 0.00
3 394391 0.00 11517.96 174320 1517.06 170032.09
4 382101 0.00 2962.82 0 3001.14 10000.00
print(df.dtypes) 给了我这个:
value object
in float64
out float64
transf int64
inc float64
buy float64
dtype: object
那么如何检测是否有任何非数字(float64,int64)数据类型?
谢谢你。
解决方案
尝试使用pd.to_numeric
,它会将非数字更改为 NaN。然后我们只需要用isna
or检测 NaNisnull
df.apply(pd.to_numeric,errors='coerce')
value in out transf inc buy
0 208372.0 4206.84 4692.22 215976 725.41 105339.92
1 NaN 0.00 1270.28 13602 1151.29 0.00
2 230172.0 0.00 1930.40 21539 1938.59 0.00
3 394391.0 0.00 11517.96 174320 1517.06 170032.09
4 382101.0 0.00 2962.82 0 3001.14 10000.00
让我们添加
df.apply(pd.to_numeric,errors='coerce').isnull().any().any()
如果True
应该有问题,如果False
应该没问题
推荐阅读
- flutter - 如何将流与提供者混合?
- android - Android 的活动视图
- sublimetext3 - Sublime Text:添加“Permute Lines -> Shuffle”快捷键
- c - structure initialization failed
- reactjs - React:是否可以将事件传递给底层 iframe?
- ios - 如何根据调用其他函数的次数来操作 switch 函数?
- elasticsearch - Elasticsearch 慢查询和高 CPU 使用率
- javascript - 禁用单选按钮检查
- spacevim - 如何向 SpaceVim.d/init.toml 添加转义键序列
- unix - 在没有 mkdir -p 的 Makefile 中创建子目录