如何获得每年哪个球员得分最高?

How to get Maximum points scored by which player in each year?

我有这样的数据集 -

Name    Point Year

Player1 498.0 2010

Player2 454.0 2010

Player1 396.0 2011

Player3 214.0 2011

player2 163.0 2011

现在我想看看每年哪个玩家得分最高。

我试过了 -

Maximum_score = df.groupby(['Year'])['Point'].max()

得到了结果-

2010   498.0

2011   396.0

但我也想要球员名字。如何做到这一点?

不要将它们存储在变量 maximum_score 中,因为这样做只是将数据框修改为一列。 只需在下一行调用 df,您就会得到结果:

# maximum calcualtion
df.groupby(['Year'])['Point'].max()
df//print(df)

您可以使用布尔索引。 groupby 在 Year 上找到最高分(就像你已经做的那样)+ transform 每个组中每个玩家的每个组的最大值,并筛选出每个组中得分最高的玩家:

out = df[df.groupby(['Year'])['Point'].transform('max') == df['Point']]

输出:

      Name  Point  Year
0  Player1  498.0  2010
2  Player1  396.0  2011