【问题标题】:How to represent the column with max Nan values in pandas df?如何在 pandas df 中表示具有最大 Nan 值的列?
【发布时间】:2021-07-11 08:46:27
【问题描述】:

我可以通过以下方式显示它: df.isnull().sum() 并通过以下方式获取最大值: df.isnull().sum().max() , 但有人可以告诉我如何用 max Nan's 表示列名? 谢谢大家!

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    使用Series.idxmaxDataFrame.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
    

    【讨论】:

    • 如果我有两列最大 val 它只代表我一列,
    • @bigish - 答案已编辑,您可以测试吗?
    • 是的,它的工作,但我只需要代表列的名称!
    • @bigish 然后使用df.columns[s.eq(s.max())]
    猜你喜欢
    • 2019-12-12
    • 2017-04-02
    • 2017-11-02
    • 2017-09-24
    • 2021-10-11
    • 2013-08-28
    相关资源
    最近更新 更多