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

Ответы:

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
11

Взять поэлементное логическое ИЛИ двух серий aи bпросто сделать

a | b
Джонатан Стрей
источник