我的数据框是一个具有不同统计数据的足球比赛列表,大约有300个条目。
game_id team opp_team avg_marks 0 2919 STK BL 122 1 2919 BL STK 114 2 2920 RICH SYD 135 3 2920 SYD RICH 108
我想将反对派统计数据添加为每个条目的新列。结果数据框将显示为此
game_id team opp_team avg_marks opp_avg_marks 0 2919 STK BL 122 114 1 2919 BL STK 114 122 2 2920 RICH SYD 135 108 3 2920 SYD RICH 108 135
任何建议都会受到欢迎,我是这个论坛的新手。我已经尝试过映射,但条目是以2列为准,game_id和opp_team 理想情况下,我会在原始电子表格中添加它,但我在熊猫中创建了本季的累积平均值,所以希望有一种方法可以将其合并。
答案 0 :(得分:0)
您可以对game_id
进行分组并反转avg_marks
值
In [725]: df.groupby('game_id')['avg_marks'].transform(lambda x: x[::-1])
Out[725]:
0 114
1 122
2 108
3 135
Name: avg_marks, dtype: int64
In [726]: df['opp_avg_marks'] = (df.groupby('game_id')['avg_marks']
.transform(lambda x: x[::-1]))
In [727]: df
Out[727]:
game_id team opp_team avg_marks opp_avg_marks
0 2919 STK BL 122 114
1 2919 BL STK 114 122
2 2920 RICH SYD 135 108
3 2920 SYD RICH 108 135
或者,从team
和avg_marks
获取字典映射,然后在map
上使用opp_team
In [729]: df['opp_team'].map(df.set_index('team')['avg_marks'].to_dict())
Out[729]:
0 114
1 122
2 108
3 135
Name: opp_team, dtype: int64