当前位置: 代码迷 >> python >> Python pandas数据框:如何仅在数据框中计算和显示缺失值的数量?
  详细解决方案

Python pandas数据框:如何仅在数据框中计算和显示缺失值的数量?

热度:23   发布时间:2023-07-16 10:32:10.0

我想问一下如何仅在数据框中计算和显示缺失值的数量? 我正在使用: df.isna().sum()但它将显示所有列,包括非缺失值列。 我如何只计数和显示数据框中具有缺失值且顺序值计数降序的列?

非常感谢!

在我看来,最简单的方法是先通过删除0值,然后再进行 :

s = df.isna().sum()
s = s[s != 0].sort_values(ascending=False)

或将用于仅过滤具有至少一个True (一个NaN )的列:

df1 = df.isna()
s = df1.loc[:, df1.any()].sum().sort_values(ascending=False)

样品:

df = pd.DataFrame({
        'A':list('abcdef'),
         'B':[np.nan,5,np.nan,5,5,np.nan],
         'C':[7,8,9,np.nan,2,3],
         'D':[1,3,5,7,1,0],
         'E':[np.nan,3,6,9,2,np.nan],
         'F':list('aaabbb')
})

s = df.isna().sum()
s = s[s != 0].sort_values(ascending=False)
print (s)
B    3
E    2
C    1
dtype: int64

您可以使用从总数中删除零值:

>>> df.isnull().sum().sort_values(ascending=False).pipe(lambda s: s[s > 0])
B    3
E    2
C    1
dtype: int64