熊猫数据框聚合计算

贝塔

我有一个包含体育比赛的熊猫数据框:

Winner      Loser          
A           B
B           A 
A           C

我想要每个球员(即A,B和C)的输赢统计数据。因此对于A,结果应为2-1。对于B,它应该是1-1,对于C,它应该是0-1。

我知道如何通过在数据框上逐行迭代来计算此值:

for index, match in df.iterrows():
    //code for calculating win-loss here

但我确信还有更多的pythonic / pandas-ish方式可以做到这一点?任何提示对此表示赞赏。

西蒙·吉本斯

您可以将groupby方法与size聚合一起使用来执行此操作

例如

print df.groupby('Loser').size()

将产生一个包含损失数量计数的数据帧。

Loser
A         1
B         1
C         1
dtype: int64

然后,您可以按以下方式将它们合并到得分计数中(fillna如果球队没有胜利或失败,则使用该方法设置默认值)

wins = df.groupby('Winner').size()
losses = df.groupby('Loser').size()

scores = pd.DataFrame({'Wins' : wins, 'Losses' : losses}).fillna(0)

最终得分为:

   Losses  Wins
A       1     2
B       1     1
C       1     0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章