2016-09-03 2 views
0

извините за этот базовый вопрос, я просто начинаю программировать на Python. С моей undertsanding, & и «и» одни и те же вещи, и «&» просто shorhand за «и», так что если я использую dataframe Питонаиспользование логической логики "и" и побитового оператора "&"

df[ (df.StateAb == "NSW") & (df.PartyAb == "LP") ] 

это compliles нормально, но если я типа

df[ (df.StateAb == "NSW") and (df.PartyAb == "LP") ] 

то он не может быть скомпилирован правильно.

так, что разница между «и» и «&»,

+0

Вы можете ссылаться на эти вещи. [2] [http://stackoverflow.com/questions/22646463/difference-between-and-boolean-vs-bitwise-in-python-why-difference-i] –

+1

Подсказка на имя. Булевой оператор ведет себя согласно правилам логической логики; побитовый оператор выполняет побитовую арифметику. –

ответ

1

Я нашел это полезным:

1 and 2 
>> 2 

1 & 2 
>> 0 

Первый результат из-за короткого замыкания. Тесты на Python 1 и считает истинным и возвращает 2. Но, то вторая часть делает 01 (Binary 1) & 10 (Binary 2), следовательно, вычисляемая 00 (1 & 0, 0 & 1), который равен 0.

+0

У вас есть «первая» и «вторая» в ваших объяснениях. – Barmar

Смежные вопросы