【发布时间】:2020-11-12 15:26:20
【问题描述】:
我应该计算自 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()
但它不会返回主队得分的总和(如果这有效,我会重复它为客队得到总分)
【问题讨论】:
-
粘贴示例数据的文本版本
-
和预期输出
-
您需要重新调整它,以便有 3(或 4)列类似于
['date', 'team', 'Home_or_Away', 'score']。pd.wide_to_long或melt可以做到这一点。 -
@ALollz 说了什么,然后是
.groupbyTeam_name并得到Score的sum()。 -
我刚刚粘贴了文本版本的数据