我有一个足球结果(足球)的数据框(df),然后,我创建了另一个数据框(homeformdf),我想用它来查看每个唯一项的前5个主队结果。
我需要的输出是主队进球总数。
df看起来像这样:
像这样的homeformdf:
对于homeformdf中的每一行,我想看一下df并将df中的前5个主游戏“ home_team_goals_count”相加。
需要将结果总和作为新列“ HG”添加到homeformdf中
我的想法是:
使用homeformdf中的home_team_name的循环
匹配df home_team_name中的第一个实例
将home_team_goal_count放在homeformdf中
将1加到计数器
并在df中向下移动
这将重复直到计数器达到5,然后启动另一个循环以将hometeamdf从hometeamdf向下移动1行,并重复直到最后一行。
我很欣赏我可能不会像您想要的那样尝试代码,因此,关于如何最好地解决此问题的建议将不胜感激,因为我正在搜索圈中寻找答案-甚至不知道我是否正在寻找答案考虑这项权利。
最佳答案
top_5 = df[['home_team_name', 'home_team_goal_count']].groupby('home_team_name').head(5)
goals_per_home_team = top_5.groupby('home_team_name').sum()
可能有一种方法可以做到这一点,但这是我可以最快地完成的工作。