我需要计算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
答案 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