我想将对手的信息放入熊猫数据帧中的新列中



我在Pandas DataFrame中有以下所有列,除了Opp_DRPM

Date  Name              Team Opp DRPM Pos Opp_DRPM
11/22 Stephen Curry     gsw  okc 1.0  1   2.2
11/22 Russell Westbrook okc  gsw 2.2  1   1.0

我想做的是:对于每个日期和每个玩家,根据对手和他们所处的相同位置,将DRPM的金额放在一个新的列"Opp_DRPM"中。

例如,斯蒂芬·库里是一名控球后卫(1号位),效力于GSW。GSW正在与OKC比赛,并与拉塞尔·威斯布鲁克(Russell Westbrook)搭档,后者也是一名控球后卫(1号位)。我想让拉塞尔·威斯布鲁克的DRPM进入斯蒂芬·库里的行列,反之亦然。

按Opp和Team排序分组,然后转换顺序。

df['Opp_DRPM']=df.groupby(list(map(''.join,(np.sort(df[['Opp','Team']].values,1))))).DRPM.transform(lambda x : x.iloc[::-1])
df
Out[60]: 
Date              Name Team  Opp  DRPM  Pos  Opp_DRPM
0  11/22      StephenCurry  gsw  okc   1.0    1       2.2
1  11/22  RussellWestbrook  okc  gsw   2.2    1       1.0

最新更新