Skip to main content
 首页 » 编程设计

python之如何根据 ID 镜像新列中的列中的值

2025年05月04日20bonelee

我拥有的数据集包含 NHL 球员数据,看起来像这样(简化):

 teamNAME   playerID        gameID     metric       Won/Lost 
  CAP       8473345           20          10           1 
  WILD      8475467           20          10           0      
  NY        8471345           21          10           1 
  STARS     8475756           21          10           0 

我想要做的是让对手的 teamNAME 出现在所有行中,这样它看起来像这样:

 teamNAME   playerID        gameID     metric       Won/Lost    Opponent 
  CAP       8473345           20          10           1         WILD 
  WILD      8475467           20          10           0          CAP     
  NY        8471345           21          10           1        STARS 
  STARS     8475756           21          10           0           NY 

你是如何解决这个问题的?

请您参考如下方法:

你可以 GroupBy gameID 并将 transform 与旋转值的 lambda 函数一起使用:

df['Opponent'] = df.groupby('gameID').teamNAME.transform(lambda x: x[::-1]) 
 
   teamNAME  playerID  gameID  metric  Won/Lost Opponent 
0      CAP   8473345      20      10         1     WILD 
1     WILD   8475467      20      10         0      CAP 
2       NY   8471345      21      10         1    STARS 
3    STARS   8475756      21      10         0       NY