2017-08-02 72 views
-3

我的数据框是一个具有不同数据的足球比赛列表,大约有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

,你可以在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 

或者,从teamavg_marks得到字典映射,然后在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 
+0

由于使用map这么多。我一直在研究这么久 –