Python / Pandas中的布尔列比较

时间:2015-11-13 15:07:16

标签: python pandas

我试图在Pandas中包含2个包含布尔值的列,并创建第三列,这些列是这些布尔值的OR。

例如,我的数据框当前包含A和B,我想创建C。

A B C
True True True
False False False
True False True
False True True

我的代码:

df['C']=df['A'] or df['B']

我试图以多种方式更改语句的结构,但最终会出现相同的错误消息:

ValueError:系列的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

1 个答案:

答案 0 :(得分:1)

使用np.logical_or

In [436]:
df['C'] = np.logical_or(df['A'], df['B'])
df
Out[436]:
       A      B      C
0   True   True   True
1  False  False  False
2   True  False   True
3  False   True   True

你不能在这里使用or运算符,因为比较数组会变得模棱两可。

或使用按位|运算符进行数组比较:

In [445]:
df['C'] = df['A'] | df['B']
df

Out[445]:
       A      B      C
0   True   True   True
1  False  False  False
2   True  False   True
3  False   True   True