【问题标题】:Filter columns with number of unique values in a pandas dataframe在熊猫数据框中过滤具有多个唯一值的列
【发布时间】:2020-06-15 07:45:15
【问题描述】:

我有一个包含 2000 多列的非常大的数据框。我正在尝试计算每列的唯一值的数量,并过滤掉具有低于某个数字的唯一值的列。这是一个例子:

import pandas as pd
df = pd.DataFrame({'A': ('a', 'b', 'c', 'd', 'e', 'a', 'a'), 'B': (1, 1, 2, 1, 3, 3, 1)})
df.nunique()
A      5
B      3
dtype: int64

假设我想过滤掉唯一值少于 5 个的 B 列,并返回没有 B 列的 df。

谢谢-

【问题讨论】:

    标签: python pandas dataframe uniq


    【解决方案1】:

    其他人可能有更 Pythonic 的方式。试试这个看看它是否有效。

    x = df.nunique()
    df[list(x[x>=5].index)]
    

    【讨论】:

    • 你真的不需要list
    【解决方案2】:

    传递.loc

    df=df.loc[:,df.nunique()>3]
       A
    0  a
    1  b
    2  c
    3  d
    4  e
    5  a
    6  a
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 2016-08-31
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多