【问题标题】:Select pandas dataframe columns which have only one unique value选择只有一个唯一值的熊猫数据框列
【发布时间】:2018-03-04 18:56:17
【问题描述】:

如何有效地选择只有 1 个唯一值的 pandas 数据框列?

我知道 DataFrame 和 Series.nunique()

【问题讨论】:

    标签: python pandas dataframe unique


    【解决方案1】:

    我认为需要DataFrame.nunique 作为布尔掩码并通过locboolean indexing 选择:

    df = pd.DataFrame({'A':list('abcdef'),
                       'B':[4,5,4,5,5,4],
                       'C':[7,8,9,4,2,3],
                       'D':[1] * 6,
                       'E':[5,3,6,9,2,4],
                       'F':list('aaaaaa')})
    
    print (df)
       A  B  C  D  E  F
    0  a  4  7  1  5  a
    1  b  5  8  1  3  a
    2  c  4  9  1  6  a
    3  d  5  4  1  9  a
    4  e  5  2  1  2  a
    5  f  4  3  1  4  a
    
    df = df.loc[:, df.nunique() == 1]
    #alternatives
    #df = df.loc[:, df.apply(lambda x: x.nunique()) == 1]
    #df = df.loc[:, df.apply(lambda x: len(x.unique())) == 1]
    print (df)
       D  F
    0  1  a
    1  1  a
    2  1  a
    3  1  a
    4  1  a
    5  1  a
    

    【讨论】:

      【解决方案2】:

      使用 DataFrame.uniques() 计算请求轴上的不同观察值。

          df = pd.DataFrame({'A': list('abcdef'),
                         'B': [4, 5, 4, 5, 5, 4],
                         'C': [7, 8, 9, 4, 2, 3],
                         'D': [1] * 6,
                         'E': [5, 3, 6, 9, 2, 4],
                         'F': list('aaaaaa')})
         print(df)
      
         df.columns[df.nunique() <= 1]
      

      【讨论】:

      • 干杯 - 非常方便
      猜你喜欢
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2021-11-30
      • 2018-08-16
      • 1970-01-01
      • 2015-01-30
      相关资源
      最近更新 更多