2017-05-30 105 views
0

条件,我有以下数据集:蟒蛇值上两列

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条件的两列条件1和条件2

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

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命令结合在一起。

回答

3

您需要使用==平等检查,单=是分配不是比较:

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

你也忘了'condition2和我包括一些圆括号单独的条件,因为&具有较高优先于==<=

熊猫还提供了比较的方法(在这种情况下eqle),所以你也可以使用:

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