如何修改Pandas透视表代码,合并同球员位置并求和导出CSV?
解决Pandas透视表合并同球员位置并求和的问题
你需要将同一球员的所有位置合并为逗号加空格分隔的字符串,同时对上场时间(Min)求和,可以通过groupby结合自定义聚合函数实现,替代原来的pivot_table写法:
# 分组聚合处理 df_result = df.groupby('Player').agg( # 统一位置格式、去重排序后合并为字符串 Pos=('Pos', lambda x: ', '.join(sorted(set(x.str.replace(',', ', '))))), # 对上场时间求和 Min=('Min', 'sum') ).reset_index() # 导出为目标格式的CSV df_result.to_csv('output.csv', index=False)
代码说明:
groupby('Player'):按球员姓名分组,将同一球员的所有数据归为一组- 聚合逻辑:
- Pos列处理:先把原始位置中
RB,CB这类格式修正为RB, CB,再去重、排序,最后用,连接成统一格式的字符串 - Min列处理:直接对同一球员的所有上场时间求和
- Pos列处理:先把原始位置中
reset_index():将Player从索引列转为普通数据列,避免导出CSV时多出索引列to_csv(..., index=False):导出CSV时不包含Pandas默认的索引
执行上述代码后,导出的CSV就会完全匹配你要求的格式。
内容的提问来源于stack exchange,提问作者Joseph Darton
相关产品推荐
相关产品推荐

