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

如何用groupby统计各运动项目奖牌总数并找出奖牌最多项目?

统计各运动项目奖牌总数并找出最多的项目

假设你用Pandas处理数据,以下是直接的解决方案:

步骤1:统计每个运动项目的总奖牌数

不需要按金/银/铜分类分组,直接按运动项目列分组后统计行数即可(每一行对应一枚奖牌记录):

# 假设你的DataFrame名为 medals_df,运动项目列是'Sport'
total_medals = medals_df.groupby('Sport').size().reset_index(name='Total_Medals')

如果数据里存在无奖牌的记录(比如Medal列有空值),先过滤掉再统计更准确:

total_medals = medals_df[medals_df['Medal'].notna()].groupby('Sport').size().reset_index(name='Total_Medals')

步骤2:找出奖牌总数最多的项目

对统计结果按总奖牌数降序排序,取第一行就是目标项目:

top_sport = total_medals.sort_values(by='Total_Medals', ascending=False).iloc[0]
print(f"奖牌最多的项目:{top_sport['Sport']},总计{top_sport['Total_Medals']}枚")

补充说明

你之前的分组应该是同时按Sport和Medal字段分组(比如groupby(['Sport', 'Medal'])),所以会按金银铜拆分统计。现在只保留Sport作为分组键,用size()直接统计每组的总记录数,就能得到该项目的奖牌总数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:09:17