2016-01-04 58 views
1

我想製作一個由兩個輸入布爾向量比較而創建的布爾向量。我可以使用for循環,但有沒有更好的方法來做到這一點?熊貓布爾代數:如果兩列均爲真,則爲真

我的理想的解決方案應該是這樣的:

df['A'] = [True, False, False, True] 
df['B'] = [True, False, False, False] 
C = ((df['A']==True) or (df['B']==True)).as_matrix() 
print C 

>>> True, False, False, True 

回答

2

我認爲這是你在找什麼:

C = (df['A']) | (df['B']) 
C 

0  True 
1 False 
2 False 
3  True 
dtype: bool 

然後,您可以將此作爲一個系列或將其轉換爲一個列表或陣列

+0

Got it!鏈接深入您的解決方案:http://stackoverflow.com/questions/3845018/python-boolean-operators-vs-bitwise-operators – user3155053

1

或者,您可以使用any方法與axis=1在索引中搜索。它也將適用於任何數量的列,你有True值:

In [1105]: df 
Out[1105]: 
     B  A 
0 True True 
1 False False 
2 False False 
3 False True 

In [1106]: df.any(axis=1) 
Out[1106]: 
0  True 
1 False 
2 False 
3  True 
dtype: bool