Мне нужен поэлементный логический оператор ИЛИ. Я знаю, что само по себе «или» - это не то, что я ищу.
Я знаю , что и соответствует &
и NOT, ~
. Но как насчет ИЛИ?
Мне нужен поэлементный логический оператор ИЛИ. Я знаю, что само по себе «или» - это не то, что я ищу.
Я знаю , что и соответствует &
и NOT, ~
. Но как насчет ИЛИ?
Соответствующий оператор |
:
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])]
Поскольку условия указываются как отдельные аргументы, группировка скобок не требуется.
Более подробную информацию о логических операциях с пандами можно найти здесь .
|
иnp.logical_or
ведут себя иначе в присутствии NaN. См. Stackoverflow.com/q/37131462/2596586or
здесь не работает. Только|
работает.Взять поэлементное логическое ИЛИ двух серий
a
иb
просто сделатьисточник