【发布时间】:2021-07-11 08:46:27
【问题描述】:
我可以通过以下方式显示它: df.isnull().sum() 并通过以下方式获取最大值: df.isnull().sum().max() , 但有人可以告诉我如何用 max Nan's 表示列名? 谢谢大家!
【问题讨论】:
我可以通过以下方式显示它: df.isnull().sum() 并通过以下方式获取最大值: df.isnull().sum().max() , 但有人可以告诉我如何用 max Nan's 表示列名? 谢谢大家!
【问题讨论】:
使用Series.idxmax 和DataFrame.loc 筛选缺失值最多的列:
df.loc[:, df.isnull().sum().idxmax()]
如果需要选择多个具有更多最大值的列,将Series 与最大值进行比较:
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,np.nan,5,np.nan,4],
'C':[7,8,9,np.nan,2,np.nan],
'D':[1,np.nan,5,7,1,0]
})
print (df)
A B C D
0 a 4.0 7.0 1.0
1 b 5.0 8.0 NaN
2 c NaN 9.0 5.0
3 d 5.0 NaN 7.0
4 e NaN 2.0 1.0
5 f 4.0 NaN 0.0
s = df.isnull().sum()
df = df.loc[:, s.eq(s.max())]
print (df)
B C
0 4.0 7.0
1 5.0 8.0
2 NaN 9.0
3 5.0 NaN
4 NaN 2.0
5 4.0 NaN
【讨论】:
df.columns[s.eq(s.max())]