繁体   English   中英

在 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 列并返回一个没有 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)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM