蟒蛇值上两列
问题描述:
条件,我有以下数据集:蟒蛇值上两列
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命令结合在一起。
答
您需要使用==
平等检查,单=
是分配不是比较:
df["result"][(df['condition2'] == 0) & (df["Rank"]<= df["condition1"])] = 1
你也忘了'
为condition2
和我包括一些圆括号单独的条件,因为&
具有较高优先于==
或<=
。
熊猫还提供了比较的方法(在这种情况下eq
和le
),所以你也可以使用:
df["result"][df['condition2'].eq(0) & df['Rank'].le(df['condition1'])] = 1