gpt4 book ai didi

python - 如何根据 Pandas 中的其他列对一列的值求和?

转载 作者:行者123 更新时间:2023-12-03 23:45:26 25 4
gpt4 key购买 nike

使用看起来像这样的数据框(下面的文本版本):
enter image description here
我应该计算自 2010 年以来哪个国家在锦标赛中进球最多。到目前为止,我已经设法通过过滤掉这样的友好来操纵数据框:

no_friendlies = df[df.tournament != "Friendly"]
然后我将日期列设置为索引,以便过滤掉 2010 年之前的所有匹配项:
no_friendlies_indexed = no_friendlies.set_index('date')
since_2010 = no_friendlies_indexed.loc['2010-01-01':]
从这一点开始我很迷茫,因为我无法弄清楚如何总结每个国家的主场和客场进球数
任何帮助/建议表示赞赏!
编辑:
示例数据的文本版本:
date    home_team   away_team   home_score  away_score  tournament  city    country     neutral
0 1872-11-30 Scotland England 0 0 Friendly Glasgow Scotland False
1 1873-03-08 England Scotland 4 2 Friendly London England False
2 1874-03-07 Scotland England 2 1 Friendly Glasgow Scotland False
3 1875-03-06 England Scotland 2 2 Friendly London England False
4 1876-03-04 Scotland England 3 0 Friendly Glasgow Scotland False
5 1876-03-25 Scotland Wales 4 0 Friendly Glasgow Scotland False
6 1877-03-03 England Scotland 1 3 Friendly London England False
7 1877-03-05 Wales Scotland 0 2 Friendly Wrexham Wales False
8 1878-03-02 Scotland England 7 2 Friendly Glasgow Scotland False
9 1878-03-23 Scotland Wales 9 0 Friendly Glasgow Scotland False
10 1879-01-18 England Wales 2 1 Friendly London England False
编辑2:
我刚刚尝试这样做:
since_2010.groupby(['home_team', 'home_score']).sum()
但它不会返回主队进球的总和(如果这有效,我会为客队重复它以获得总进球数)

最佳答案

.groupby.sum()对于主队,然后对客队执行相同的操作并将两者相加:

df_new = df.groupby('home_team')['home_score'].sum() + df.groupby('away_team')['away_score'].sum()
输出:
England     12
Scotland 34
Wales 1
更详细的解释(每条评论):
  • 您只需要.groupby一栏home_team .在您的回答中,您按 ['home_team', 'home_score'] 分组您的目标(无双关语)是获得 .sum()home_score -- 所以你不应该.groupby()它。如您所见 ['home_score']在我使用的部分之后 .groupby ,这样我就可以得到 .sum()其中。这让你为主队做好准备。
  • 然后,您对 away_team 执行相同的操作。 .
  • 在这一点上,python/pandas 足够聪明,因为 home_team 的结果和 away_team组对于国家/地区具有相同的值,您可以简单地将它们加在一起...
  • 关于python - 如何根据 Pandas 中的其他列对一列的值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63045171/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com