Поэлементное логическое ИЛИ в пандах


81

Мне нужен поэлементный логический оператор ИЛИ. Я знаю, что само по себе «или» - это не то, что я ищу.

Я знаю , что и соответствует &и NOT, ~. Но как насчет ИЛИ?

Ответы:


129

Соответствующий оператор |:

 df[(df < 3) | (df == 5)]

будет поэлементно проверять, меньше ли значение 3 или равно 5.


Если вам нужна функция для этого, у нас есть np.logical_or. Для двух условий вы можете использовать

df[np.logical_or(df<3, df==5)]

Или, несколько условий использования logical_or.reduce,

df[np.logical_or.reduce([df<3, df==5])]

Поскольку условия указываются как отдельные аргументы, группировка скобок не требуется.

Более подробную информацию о логических операциях с пандами можно найти здесь .


30
Круглые скобки являются важными
Gerard

4
|и np.logical_orведут себя иначе в присутствии NaN. См. Stackoverflow.com/q/37131462/2596586
Франк

Просто комментарий: orздесь не работает. Только |работает.
alanwsx

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.