如何对DataFrame中重复运动员的奖牌数求和合并?
按运动员汇总奖牌总数的正确方法
你用df.groupby('Athlete').first().reset_index()没达到预期,核心原因是first()只会提取每组的第一行数据,不会对奖牌数值做求和计算。要实现按运动员统计金、铜、银牌的总数,需要把聚合函数换成sum(),它会对每组内的奖牌数值列自动求和。
示例代码
先构造你的示例数据集:
import pandas as pd data = { 'Athlete': ['Tim', 'Tim', 'Joe'], 'Gold': [1, 0, 1], 'Bronze': [0, 0, 0], 'Silver': [0, 1, 0] } df = pd.DataFrame(data)
执行正确的聚合逻辑:
medal_totals = df.groupby('Athlete').sum().reset_index()
运行结果
Athlete Gold Bronze Silver 0 Joe 1 0 0 1 Tim 1 0 1
这样就能得到每个运动员的各奖牌总数,既避免了重复行,又完成了数值求和。
内容的提问来源于stack exchange,提问作者Retro_Palmtree
相关产品推荐
相关产品推荐

