[英]How to separate numerical from nan values?
我的熊猫数据框缺少很多数据。
d = dfs['REV_PIZ'].isna()
输出为布尔值。
0 True
1 True
2 True
3 True
4 True
5 True
6 True
7 True
我真正想要的是仅包含数值d,这将使我能够在本专栏上进行进一步的数学运算。
目前尚不清楚是否存在非数值,因此有两种可能的解决方案:
如果所有值都是数字,则可以对isna
使用boolean indexing
:
d = dfs[dfs['REV_PIZ'].notna()]
或dropna
柱REV_PIZ
:
d = dfs.dropna(subset=['REV_PIZ'])
样品 :
dfs = pd.DataFrame({'REV_PIZ':[1,2,np.nan]})
d = dfs.dropna(subset=['REV_PIZ'])
print (d)
REV_PIZ
0 1.0
1 2.0
如果将数字与非数字混合,则将to_numeric
添加到errors='coerce'
以将非数字转换为NaN
:
dfs = pd.DataFrame({'REV_PIZ':[1,2,np.nan,'a']})
dfs['REV_PIZ'] = pd.to_numeric(dfs['REV_PIZ'], errors='coerce')
d = dfs.dropna(subset=['REV_PIZ'])
print (d)
REV_PIZ
0 1.0
1 2.0
我认为您的问题几乎可以回答自己,您可以像这样过滤掉它们
d = dfs[~dfs['REV_PIZ'].isna()]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.