You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Pandas代码,按球队分组后将对应最高出场时长的球员名添加至每行

如何在Pandas中按组获取对应最大出场时长的球员名?

嘿,我来帮你搞定这个需求!你现在需要的是按球队分组后,把该队出场时间最长的球员名填充到每一行的新列里,而不是原来的最大时长数值。这里有两种简单好用的实现方法:

方法一:先定位每组最长时长的球员,再映射到原表

# 第一步:找出每支球队里出场时长最高的球员
max_player_per_team = df.groupby('Team')['Minutes played'].idxmax().apply(lambda idx: df.loc[idx, 'Player'])
# 第二步:把球员名匹配到原DataFrame的每一行
df['count_max'] = df['Team'].map(max_player_per_team)

方法二:用transform直接在分组内生成结果

df['count_max'] = df.groupby('Team').transform(
    lambda group: group.loc[group['Minutes played'].idxmax(), 'Player']
)

简单解释下逻辑

  • 方法一中,idxmax()会返回每组里Minutes played数值最大的那一行的索引,我们用这个索引去原表中取出对应的球员名,最后通过map函数,把每个球队对应的球员名填充到原表的所有对应行里。
  • 方法二更直接,用transform遍历每个分组,在每个分组内部找到时长最长的球员,然后把这个名字自动填充到该分组的每一行,一步到位。

运行任意一种方法后,你都会得到想要的结果:

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

内容的提问来源于stack exchange,提问作者Stan75

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 18:32:47