Python 列表或熊猫中的布尔运算——错误还是误解?

Python 列表或熊猫中的布尔运算——错误还是误解?,python,pandas,Python,Pandas,下面的和操作真值表让我感到困惑。这是一个错误还是我误解/遗漏了什么 x = pd.DataFrame({'input_1':[True, False, True, False],'input_2':['True','True','False','False'], 'expected_AND':['True','False','False','False']}) x['actual_AND'] = x['input_1'] & x['input_2'] display(x) 输入列包含字

下面的
操作真值表让我感到困惑。这是一个错误还是我误解/遗漏了什么

x = pd.DataFrame({'input_1':[True, False, True, False],'input_2':['True','True','False','False'], 'expected_AND':['True','False','False','False']})
x['actual_AND'] = x['input_1'] & x['input_2']
display(x)

输入列包含字符串,而不是布尔值。任何非空字符串都是真实的,因此所有这些值都等效于
True

删除
input_2
中的引号,就像
input_1
一样

x = pd.DataFrame({'input_1':[True, False, True, False],'input_2':[True,True,False,False], 'expected_AND':['True','False','False','False']})

input_2
列包含字符串,而不是布尔值。任何非空字符串都是真实的,因此所有这些值都等效于
True

删除
input_2
中的引号,就像
input_1
一样

x = pd.DataFrame({'input_1':[True, False, True, False],'input_2':[True,True,False,False], 'expected_AND':['True','False','False','False']})

您可以使用numpy中的
np.logical\u和

x['actual_AND'] = np.logical_and(x['input_1'], x['input_2']); 
display(x)
然后,你会得到:

   input_1 input_2 expected_AND actual_AND
0     True    True         True       True
1    False    True        False      False
2     True   False        False      False
3    False   False        False      False

您可以使用numpy中的
np.logical\u和

x['actual_AND'] = np.logical_and(x['input_1'], x['input_2']); 
display(x)
然后,你会得到:

   input_1 input_2 expected_AND actual_AND
0     True    True         True       True
1    False    True        False      False
2     True   False        False      False
3    False   False        False      False

“True”是字符串,不是布尔值!这是你的问题!如果有人已经回答了,对不起True'是字符串,不是布尔值!这是你的问题!如果有人已经回答了,对不起!