根据唯一值计数过滤行

时间:2019-07-17 18:50:00

标签: python-3.x pandas

我需要计算A列的唯一值,并过滤出大于2的列。

 A C
Apple 4
Orange 5
Apple 3
Mango 5
Orange 1

我已经计算出唯一值,但是无法弄清楚如何df.value_count()

我要过滤的列A大于2,预期的数据框

A B
Apple 4
Orange 5
Apple 3
Orange 1

2 个答案:

答案 0 :(得分:1)

value_counts应该在Series(单列)而不是DataFrame上调用:

counts = df['A'].value_counts()

给予:

A
Apple     2
Mango     1
Orange    2
dtype: int64

然后可以对此进行过滤,以仅保留那些> = 2并使用isin过滤DataFrame:

filtered = counts[counts >= 2]
df[df['A'].isin(filtered.index)]

给予:

        A  C
0   Apple  4
1  Orange  5
2   Apple  3
4  Orange  1

答案 1 :(得分:0)

duplicated与参数keep=False一起使用:

df[df.duplicated(['A'], keep=False)]

输出:

        A  C
0   Apple  4
1  Orange  5
2   Apple  3
4  Orange  1