Python 数据帧:在一条语句中标识NaN和零值
有没有办法把这两种说法结合起来Python 数据帧:在一条语句中标识NaN和零值,python,pandas,dataframe,Python,Pandas,Dataframe,有没有办法把这两种说法结合起来 df.isnull().sum()和 (df==0).sum()获取以下概述 演示: 预期结果: a 2 b 3 c 5 可能很简单,但我找不到解决方案。。。 谢谢你的帮助你是说: In[27]: (df==0).sum() + df.isnull().sum() Out[27]: a 2 b 3 c 5 dtype: int64 编辑 感谢@coldpseed的建议,您还可以执行以下操作: In[28]: df[df!
df.isnull().sum()
和
(df==0).sum()
获取以下概述
演示:
预期结果:
a 2
b 3
c 5
可能很简单,但我找不到解决方案。。。
谢谢你的帮助你是说:
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
更简洁的是,我一直更支持清晰,但短代码有时会胜出。另一种选择:
>>> ((df == 0) | df.isnull()).sum()
a 2
b 3
c 5
dtype: int64
>>>
此外:
使用
fillna
df.fillna(0).eq(0).sum()
Out[8]:
a 2
b 3
c 5
dtype: int64
只要
(df==0).sum()+df.isnull().sum()
?df[df!=0].isnull().sum()
只调用一个sum就可以了。。。顺便说一下,很高兴见到你:)@cᴏʟᴅsᴘᴇᴇᴅ 谢谢,看起来比较整洁,我应该包括在内吗?在幻想破灭后,我在工作上也很忙,只是用脚趾象征性地说了一句:是的,绝对是,这是为了让你加入进来!我们需要我们的老兵回来,没有更好的时间让你回来了。。。这正是我想要的。我怀疑这个查询存在一个特殊的表达式,谢谢你的帮助@Tomor02最好不要想得太多,在这里使用+
生成的序列将在索引上自然对齐,因此它不会像看起来的那样复杂(在较大的帧上fillna可能较慢),但除非性能是关键,否则这并不重要。
>>> (df.eq(0) | df.isnull()).sum()
a 2
b 3
c 5
dtype: int64
>>>
df.fillna(0).eq(0).sum()
Out[8]:
a 2
b 3
c 5
dtype: int64