我有一个带有两个布尔列的数据框。
我正在尝试使用以下逻辑分配新列:
df['C'] = df['A']==True and df['B']==False
错误说系列的真相是模棱两可的。我可以看到问题,但我不知道如何告诉它我希望它按行执行操作。
答案 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