首页 > 解决方案 > 如果对象的计数最大,则仅保留行

问题描述

我有一个熊猫数据框如下

A B
1 2
1 2
1 0
1 2
2 3
2 3
2 1
3 0
3 0
3 1
3 2

我想得到以下输出

A B
1 2
1 2
1 2
2 3
2 3
3 0
3 0

这意味着我只需要 A 的计数最大的行。有什么解决办法吗?

非常感谢!

标签: pythonpandas

解决方案


您可以groupby()结合Series.mode()

df_out = df[df.groupby("A")["B"].transform(lambda x: x == x.mode()[0])]
print(df_out)

印刷:

   A  B
0  1  2
1  1  2
3  1  2
4  2  3
5  2  3
7  3  0
8  3  0

推荐阅读