首页 > 解决方案 > 熊猫数据框:在一个语句中识别 NaN 和零值

问题描述

有什么方法可以结合这两个语句 df.isnull().sum()(df == 0).sum()获得以下概述?

演示:

df = pd.DataFrame({'a':[1,0,0,1,3], 'b':[0,NaN,1,NaN,1], 'c':[0,0,0,0,NaN]})

df

    a   b       c
0   1   0.0     0.0
1   0   NaN     0.0
2   0   1.0     0.0
3   1   NaN     0.0
4   3   1.0     NaN

预期结果:

a    2
b    3
c    5

可能很简单,但我找不到解决方案...感谢您的帮助

标签: pythonpandasdataframe

解决方案


你的意思是这样的:

In[27]:

(df==0).sum() + df.isnull().sum()
Out[27]: 
a    2
b    3
c    5
dtype: int64

编辑

感谢@coldpseed 的建议,您还可以执行以下操作:

In[28]:
df[df!=0].isnull().sum()

Out[28]: 
a    2
b    3
c    5
dtype: int64

更简洁,我一直更倾向于清晰,但有时更短的代码会获胜。


推荐阅读