我拥有的数据集包含 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
