问题描述
我想问一下如何仅在数据框中计算和显示缺失值的数量?
我正在使用: df.isna().sum()
但它将显示所有列,包括非缺失值列。
我如何只计数和显示数据框中具有缺失值且顺序值计数降序的列?
非常感谢!
1楼
在我看来,最简单的方法是先通过删除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
2楼
您可以使用从总数中删除零值:
>>> df.isnull().sum().sort_values(ascending=False).pipe(lambda s: s[s > 0])
B 3
E 2
C 1
dtype: int64