繁体   English   中英

在两列上有条件的python值

[英]python value conditional on two columns

我有以下数据集:

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

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

我试过下面的代码,但得到“无效的语法”。

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

有人可以帮助我找到错误吗? 我知道如何使此命令成为一个条件的条件,但是我不知道如何将第二个条件与AND命令结合在一起。

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

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

您也忘了' for condition2并且我加上了一些括号来分隔条件,因为&优先级高于==<=

Pandas还提供了比较方法le在这种情况下为eqle ),因此您还可以使用:

df["result"][df['condition2'].eq(0) & df['Rank'].le(df['condition1'])] = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM