我有一个如下所示的数据帧:
home_team away_team score home_goals away_goals winner
1 Arsenal Chelsea 3-0 3 0 Arsenal
2 ManCity Arsenal 1-1 1 1 draw
3 Chelsea Arsenal 2-1 2 1 Chelsea
4 Arsenal Chelsea 5-5 5 5 draw
5 Arsenal ManCity 1-2 1 2 ManCity
我的问题是:我如何计算阿森纳对另一支球队的赢-平-负/正面交锋记录
潜在的预期结果可能如下所示:
team opponent games_played wins draws losses goals_scored goals_conceded
1 Arsenal Chelsea 3 1 1 1 9 7
2 Arsenal ManCity 2 0 1 1 2 3
非常感谢您的帮助。请注意,数据帧不是真实的(以防任何英超专家潜伏)
检查此代码:
此代码将以
df_in
的形式加载数据,并使用所需的数据创建一个df_out
。输出:
首先,您需要复制数据并翻转主客场团队以获得 您想要的球队/对手风格的统计信息
这是因为每场比赛你需要数到两次,一次是赢家,一次是输家。复制df并翻转字段,然后使用
df.concat
将数据帧放在一起现在您可以聚合
你应该在主场、客场和赢家三场比赛中获得积分。数一数这一步的路线和目标。使用
df.groupby(dimensions).agg(metrics)
现在需要将索引重置回df,以便再次使用winner列。使用
df.reset_index(inplace=True)
完成此操作一旦你有了这个,你就可以创建新的列
win, loss, draw'
,在那里你可以将胜利者与主队列或静态字符串“draw”进行比较您现在可以再次计算df并汇总赢/输/平局列
相关问题 更多 >
编程相关推荐