如何在新列分配中使用布尔逻辑?

时间:2018-02-02 05:46:24

标签: python pandas boolean

我有一个带有两个布尔列的数据框。

我正在尝试使用以下逻辑分配新列:

df['C'] = df['A']==True and df['B']==False

错误说系列的真相是模棱两可的。我可以看到问题,但我不知道如何告诉它我希望它按行执行操作。

2 个答案:

答案 0 :(得分:0)

df['C']=((df['A']==True) & (df['B']==False))*1

答案 1 :(得分:0)

使用:

df['C'] = (df['A']==True) & (df['B']==False) 

或者更好地指出@Yakym Pirozhenko在评论中被B反转~列:

df['C'] = df['A'] & ~df['B']

<强>示例

df = pd.DataFrame({'A':[True, False, True, True],
                   'B':[True, False, False, True]})

print (df)
       A      B
0   True   True
1  False  False
2   True  False
3   True   True

df['C'] = df['A'] & ~df['B']
print (df)
       A      B      C
0   True   True  False
1  False  False  False
2   True  False   True
3   True   True  False