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

使用pandas groupby查询每个赛季进球最多的球队的实现方法

pandas 提取每个赛季进球最高球队代码调整方案

你当前的代码是先按「球队+赛季」分组统计总进球后全局排序取前10,逻辑上是跨赛季的总进球排名,自然会出现同一个赛季多个球队入选、赛季重复的问题。可以根据你的数据场景选择对应方案调整:


场景1:原始数据已是单赛季单球队仅对应一行

不需要额外聚合同队同赛季的多场数据,直接用如下代码:

# 取每个赛季进球最大值对应的行索引
max_goals_idx = df.groupby('season')['goals'].idxmax()
# 按索引提取对应行,筛选需要的字段
result = df.loc[max_goals_idx, ['team', 'season', 'goals']].reset_index(drop=True)

场景2:原始数据存在同赛季同球队多条记录

需要先合并计算单赛季总进球,用如下代码:

# 先聚合计算每个球队每个赛季的总进球
season_team_total = df.groupby(['season', 'team'], as_index=False)['goals'].sum()
# 取每个赛季总进球最大值对应的行索引
max_goals_idx = season_team_total.groupby('season')['goals'].idxmax()
# 提取结果
result = season_team_total.loc[max_goals_idx].reset_index(drop=True)

附加:保留同赛季所有并列进球最高的球队

如果存在同一赛季多支球队进球数同为最高的情况,需要保留所有并列记录,用如下代码:

# 先聚合单队单赛季总进球
season_team_total = df.groupby(['season', 'team'], as_index=False)['goals'].sum()
# 计算每个赛季的最高进球数,匹配到每一行
season_max = season_team_total.groupby('season')['goals'].transform('max')
# 筛选出进球数等于赛季最高值的所有记录
result = season_team_total[season_team_total['goals'] == season_max].reset_index(drop=True)

以上代码输出的result即为无重复赛季、仅包含各赛季最高进球球队的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:54:06