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'是字符串,不是布尔值!这是你的问题!如果有人已经回答了,对不起!