python值以两列为条件

2024-10-01 02:21:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据集:

id  Rank   condition1    condition2  result 
1    2      50           0            0  
1    2      50           0            0
2    55     50           1            0
2    55     50           1            0

条件1列和条件列2的结果将成为条件1。在

如果rank <= condition 1 AND if condition2 = 0,则结果应为1

^{pr2}$

我尝试了以下代码,但得到了“无效语法”。在

df["result"][df[condition2] = 0 & df["Rank"]<= df["condition1"]] = 1

有人能帮我找出错误吗?我知道如何使这个命令以一个条件为条件,但我不知道如何将第二个条件与AND命令结合起来。在


Tags: and数据代码命令iddfifresult
1条回答
网友
1楼 · 发布于 2024-10-01 02:21:57

您需要使用==进行相等性检查,单个=用于分配而不是用于比较:

df["result"][(df['condition2'] == 0) & (df["Rank"]<= df["condition1"])] = 1

您还忘记了condition2',我加了一些括号来分隔条件,因为&的优先级高于==或{}。在

Pandas还提供了比较方法(在本例中是eq和{}),因此您还可以使用:

^{pr2}$

相关问题 更多 >