慕神8447489
在我看来,最简单的方法是删除0值boolean indexing,然后sort_values:s = df.isna().sum()s = s[s != 0].sort_values(ascending=False)或any仅用于过滤至少有一个True(one 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 3E 2C 1dtype: int64