【发布时间】:2019-12-05 16:54:17
【问题描述】:
我有一个如下所示的 DataFrame:
df = pd.DataFrame({'hometeam_id': {0: 1, 1: 3, 2: 5, 3: 2, 4: 4, 5: 6, 6: 1, 7: 3, 8: 2},
'awayteam_id': {0: 2, 1: 4, 2: 6, 3: 3, 4: 5, 5: 1, 6: 4, 7: 6, 8: 5},
'home_score': {0: 1, 1: 4, 2: 3, 3: 2, 4: 1, 5: 5, 6: 4, 7: 7, 8: 8},
'away_score': {0: 5, 1: 1, 2: 2, 3: 3, 4: 4, 5: 2, 6: 1, 7: 2, 8: 4}})
我需要对每行的最后 2 个值进行滚动平均。但诀窍是我需要 id 的总目标。例如,第 1 队主场打了 2 场比赛,客场打了 1 场比赛。我需要添加 2 个新列来显示主队和客队的总进球数。例如,对于团队 1,2 个新列将如下所示。
output = pd.DataFrame({'home_id': {0: 1, 1: 6, 2: 1},
'away_id': {0: 2, 1: 1, 2: 4},
'home_score': {0: 1, 1: 5, 2: 4},
'away_score': {0: 5, 1: 2, 2: 1},
'total_home': {0: 1.0, 1: nan, 2: 1.5},
'total_away': {0: nan, 1: 2.0, 2: nan}})
忽略我没有为其他球队计算的 na 值,只计算球队 1。基本上,在这种格式下,我需要球队最近 2 场比赛的平均进球数。
【问题讨论】:
标签: python pandas moving-average