如何在具有 null 值的列中仅查找 null 值的总和,而忽略 null 值为零的列?

How do I find only the sum of null values in columns which have null values ignoring the ones with zero null values?

提问人:mansi 提问时间:5/12/2023 最后编辑:Andrej Keselymansi 更新时间:5/12/2023 访问量:43

问:

df.isnull().sum().sort_values(ascending=False)

可以给我们 null 值,但它显示所有列,甚至是没有任何 null 的列。我想要具有 null 值的列以及其中的计数。 空值之和:

A 2
B 0
C 3
D 1

我已经使用以下代码尝试过了。有没有更好的方法?

df[df.columns[df.isnull().any()]].isnull().sum().sort_values(ascending=False) 

结果:

A 2
B 3
D 1
python pandas null

评论

0赞 Stuart 5/12/2023
您是否正在尝试按列名或空值数进行排序?

答:

0赞 Timeless 5/12/2023 #1

你可以用 loc/ne 链接它:

df.isnull().sum().sort_values(ascending=False).loc[lambda s: s.ne(0)]

C    3
A    2
D    1
dtype: int64

使用的输入:

print(df)

     A    B   C    D
0  NaN  bar NaN  foo
1  NaN  baz NaN  NaN
2  foo  qux NaN  baz
0赞 Stuart 5/12/2023 #2

也许你正在寻找一句话,但我只想做:

nulls = df.isnull().sum()
nulls[nulls > 0].sort_values(ascending=False)