【发布时间】:2021-03-25 21:03:39
【问题描述】:
例子df:
id 主场 客场 胜利者 失败者 胜利者得分 失败者得分 0 A B A B 20 10 1 C D D C 20 5 2 A D D A 30 0我的目标是建立一个赢/输/支持/反对的表格。最终结果:
| Team | W | L | Total for | Total against |
|---|---|---|---|---|
| A | 1 | 1 | 20 | 40 |
| B | 0 | 1 | 10 | 20 |
| C | 0 | 1 | 5 | 20 |
| D | 2 | 0 | 50 | 5 |
我可以使用groupby('winner/loser') 来获得胜负,但我无法正确地使用groupby 来获得总分(和平均值,但这非常相似)。我的主要问题是当一支球队从未赢过一场比赛时,我最终会得到 NaN。
我现在的方法是:
by_winner = df.groupby('winner').sum()
by_loser = df.groupby('loser').sum()
overall_table['score_for'] = by_winner.score + by_loser.score
我什至不知道如何表达这个问题,但我希望能够从一行 = 一场比赛的概念运行这些统计数据,但我不知道如何按获胜者分组失败者,这样我就可以一次得到所有团队的总和。
【问题讨论】: