首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python根据另一列中的某些值在Pandas DataFrame中创建新列?

如何使用Python根据另一列中的某些值在Pandas DataFrame中创建新列?
EN

Stack Overflow用户
提问于 2022-01-20 03:20:31
回答 1查看 28关注 0票数 0

我仍然在学习Python和Pandas,可能需要一些帮助。我想在现有的DataFrame中创建一个新列。

当前DataFrame:

代码语言:javascript
复制
bballData = {'Name':['Joel', 'Cole', 'Duncan'],
        'Team':['PHI', 'ORL', 'MIA'],
        'Home':['PHI', 'PHI', 'MIA'],
        'Away':['ORL', 'ORL', 'POR']}

df = pd.DataFrame(bballData)

新列将成为“对手”。

期望产出:

代码语言:javascript
复制
bballDataFinal = {'Name':['Joel', 'Cole', 'Duncan'],
        'Team':['PHI', 'ORL', 'MIA'],
        'Home':['PHI', 'PHI', 'MIA'],
        'Away':['ORL', 'ORL', 'POR'],
        'Opponent':['ORL','PHI','POR']}

dfFinal = pd.DataFrame(bballDataFinal)

为了创建这个新的专栏“对手”,我希望能够做到以下几点:

如果‘团队’值等于‘主场’值,那么对手应该是‘客场’价值。

在这种情况下,球员1,乔尔,他的球队是PHI和家庭是PHI,所以对手应该是‘客场’价值,ORL。

如果‘团队’值等于‘客场’值,那么对手应该是‘主场’价值。

在这种情况下,对于2号球员,科尔,他的球队是ORL,客场是ORL,所以对手应该是‘主场’价值,PHI。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-20 03:28:18

您可以在这里使用np.select。它评估多个条件,并根据哪个条件计算为True来选择结果。因此,例如,如果df['Team']==df['Home']是真,它从df['Away']选择等等。

代码语言:javascript
复制
import numpy as np
df['Opponent'] = np.select([df['Team']==df['Home'], df['Team']==df['Away']], [df['Away'], df['Home']], 'No opponent here')

如果你保证对手一定是所列的两支球队之一,那么你可以使用np.where。基本上,这是np.select的二进制版本。

代码语言:javascript
复制
df['Opponent'] = np.where(df['Team']==df['Home'], df['Away'], df['Home'])

输出:

代码语言:javascript
复制
     Name Team Home Away Opponent
0    Joel  PHI  PHI  ORL      ORL
1    Cole  ORL  PHI  ORL      PHI
2  Duncan  MIA  MIA  POR      POR
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70780443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档