在 pandas 数据框中过滤具有唯一值数量的列
Filter columns with number of unique values in a pandas dataframe
我有一个包含 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 列和 return 没有 B 列的 df。
谢谢-
通过 .loc
df=df.loc[:,df.nunique()>3]
A
0 a
1 b
2 c
3 d
4 e
5 a
6 a
其他人可能有更pythonic的方式。试试这个,看看它是否有效。
x = df.nunique()
df[list(x[x>=5].index)]
我有一个包含 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 列和 return 没有 B 列的 df。
谢谢-
通过 .loc
df=df.loc[:,df.nunique()>3]
A
0 a
1 b
2 c
3 d
4 e
5 a
6 a
其他人可能有更pythonic的方式。试试这个,看看它是否有效。
x = df.nunique()
df[list(x[x>=5].index)]