Pandas DF - 按 A 列中的值过滤 DF,B 列中的最大值(分组依据?)

Pandas DF - Filter DF by Value in Column A, Highest Value of in Column B (Group By?)

我正在尝试做一些我觉得不应该太难的事情,但我遇到了麻烦。

最好的方法是说明它。我目前有一个 DF 有很多 rows/columns。我想在 A 列的唯一值中获取 B 列的最高值,并删除其余无关紧要的行。我很难说清楚是什么,也许分组等等

例如:

初始Table

Col A  - Col B - Col C
2012        1       2
2012        1       7
2012        2       45
2012        2       34
2012        3       4
2012        3       32
2013        1       54
2013        1       3
2013        2       5
2013        2       23

Table 我想结束

Col A  - Col B - Col C
2012        3       4
2012        3       32
2013        2       5
2013        2       23

感谢大家的帮助!!

会继续四处寻找,但这是一个棘手的问题

尝试:

df_out = df.groupby("Col A").apply(lambda x: x[x["Col B"] == x["Col B"].max()])
print(df_out.reset_index(drop=True))

打印:

   Col A  Col B  Col C
0   2012      3      4
1   2012      3     32
2   2013      2      5
3   2013      2     23

或者:使用.transform:

df_out = df[df["Col B"] == df.groupby("Col A")["Col B"].transform("max")]
print(df_out)