python - 根据给定条件将新列添加到现有数据框列

标签 python pandas dataframe

我有一个包含以下列名称的数据框,我想根据给定条件创建一个新列。条件是为数据框中的每个唯一 EVENT_ID 创建一个新列 Race,检查 WIN_LOSE 中值为 1 的行,取与该 WIN_LOSE 行对应的 SELECTION_TRAP 值并创建竞赛

我尝试使用 pandas where 函数,但我没有得到正确的结果

df['Race'] = df.where(df['WIN_LOSE']==1,df['SELECTION_TRAP'],axis = 0)

EVENT_ID    SELECTION_TRAP  WIN_LOSE
174331755       1             0
174331755       2             0
174331755       7             1
174331755       4             0
174331755       3             0
174331755       6             0
174331755       8             0
174329130       5             0
174329130       7             1
174329130       1             0
174329130       4             0
174329130       2             0
174329130       8             0

我的预期输出应该如下所示。

EVENT_ID    SELECTION_TRAP  WIN_LOSE  RACE
174331755       7             1        7
174329130       7             1        7

最佳答案

首先按 boolean indexingWIN_LOSE 中按 1 进行过滤然后分配新列。

df1 = df[df['WIN_LOSE']==1].copy()
df1['RACE'] = df1['SELECTION_TRAP']
print (df1)
    EVENT_ID  SELECTION_TRAP  WIN_LOSE  RACE
2  174331755               7         1     7
8  174329130               7         1     7

关于python - 根据给定条件将新列添加到现有数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69281698/

相关文章:

python - 如何检查 n 列表并将其转换为 Python 中的 pandas 数据框?

python - 如何在 python 中进行 groupby 来拆分订单?

python - 在 Python 中将元组转换为字典

python - 如何将dict的dict转换为指定格式的dict?

python - 无法根据列的索引删除数据框中的列

python - 以编程方式为 pd.melt 选择列

python - 按行值拆分 pandas 数据框列

python - 如何测试字符串包含列表中的元素并通过 Pandas 将目标元素分配给另一列

python - 访问一个python类的多个实例的成员函数

python - Spyne:输入参数具有不同命名空间的请求