获取某列最大值对应的类别名称

Get the name of the category corresponding to the maximum value of a column

我有一个 pandas 数据框,其中包含足球队、足球运动员和本赛季的上场分钟数。

Team Player Minutes played
1 a 2
1 b 10
1 c 0
2 a 28
2 b 50
2 e 7
3 c 200
3 p 10

通过做:

df['count_max'] = df.groupby(['Team'])['Minutes played'].transform(max)
df

我得到一个新列,其中包含每支球队的最大上场时间

Team Player Minutes played Count_max
1 a 2 10
1 b 10 10
1 c 0 10
2 a 28 50
2 b 50 50
2 e 7 50
3 c 200 200
3 p 10 200

但是我不想显示这些信息,而是显示与玩家对应的字母(b 代表 1,b 代表 2,c 代表 3)。 您知道我怎样才能更新我的代码吗?

我的预期输出是:

Team Player Minutes played Count_max
1 a 2 b
1 b 10 b
1 c 0 b
2 a 28 b
2 b 50 b
2 e 7 b
3 c 200 c
3 p 10 c

您可以在 transform 中使用 idxmax 并将索引映射到 Player 列。

df['count_max'] = df.groupby('Team')['Minutes played'].transform('idxmax').map(df['Player'])
print(df)

   Team Player  Minutes played count_max
0     1      a               2         b
1     1      b              10         b
2     1      c               0         b
3     2      a              28         b
4     2      b              50         b
5     2      e               7         b
6     3      c             200         c
7     3      p              10         c