Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想把对手';将信息放入数据帧中的新列中_Python_Pandas_Lambda_Apply_Loc - Fatal编程技术网

Python 我想把对手';将信息放入数据帧中的新列中

Python 我想把对手';将信息放入数据帧中的新列中,python,pandas,lambda,apply,loc,Python,Pandas,Lambda,Apply,Loc,除了Opp_DRPM之外,我在Pandas数据框中有以下所有列 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”中 例如,

除了Opp_DRPM之外,我在Pandas数据框中有以下所有列

    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)。我想将Russell Westbrook的DRPM放入Stephen Curry的行,反之亦然。

按排序的Opp和团队分组,然后转换顺序

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

显示您的预期输出这是我的预期输出。我有所有的专栏,除了Opp_DRPM,这将是一个新的专栏,看起来像我上面展示的。我认为它是有效的!我现在正在测试。如果我把团队和Opp转换成整数,代码会发生什么变化?@GilO'Brien这是一样的,你可以测试它。我需要在组中包括日期和位置。日期是datetime64[ns]列。@GilO'Brien更改为
df.groupby(['date',list(map(''.join,(np.sort(df['Opp','Team']].values,1)))))].DRPM.transform(lambda x:x.iloc[::-1])
在发布代码后,我编辑了我的评论。我也需要Pos加入团队。