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

Pandas groupby合并英雄联盟赛事重复对局数据 如何拆分统计各位置金币占比

英雄联盟赛事数据统计优化方案

问题根因

你当前使用的分组键['Team', 'Opponent', 'Result']无法唯一标识单局赛事,相同对阵、相同胜负结果的多局数据会被合并计算,导致统计结果不符合预期。

优化实现(无需额外新建DataFrame)

不需要单独生成新表存储对局编号,直接在原数据表内生成唯一对局标识即可,完整代码如下:

import pandas as pd

datafile = "LoL_raw_data.csv"
df = pd.read_csv(datafile)

# 1. 生成单局唯一标识
# 若数据表头已有对局ID类字段(如gameid、matchid),直接赋值即可:
df['game_id'] = df['gameid']
# 若无现成对局ID,可按数据顺序每10行对应1局(每局两队共10名选手)自动生成:
# df['game_id'] = df.index // 10

# 2. 统计每局每队总金币,合并回原表
team_game_total = df.groupby(['game_id', 'Team'])['gold'].sum().reset_index(name='team_total_gold')
df = df.merge(team_game_total, on=['game_id', 'Team'])

# 3. 计算单局内选手金币占队伍总金币比例
df['gold_pct'] = df['gold'] / df['team_total_gold']

# 4. 统计各位置平均金币(可灵活调整分组维度)
# 全赛事各位置平均金币
pos_avg_gold = df.groupby('Position')['gold'].mean().reset_index(name='avg_gold')
# 各队伍各位置平均金币
team_pos_avg_gold = df.groupby(['Team', 'Position'])['gold'].mean().reset_index(name='avg_gold')

参考截图

  • 原分组代码截图:原分组代码
  • 数据表头截图:数据表头

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:39:02