Элементарный логический ИЛИ в Pandas
Я хотел бы поэлементный логический оператор ИЛИ. Я знаю "или" само по себе не то, что я ищу.
Я знаю, что AND соответствует &
и NOT, ~
. Но как насчет ИЛИ?
Ответы
Ответ 1
Соответствующий оператор |
:
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])]
Поскольку условия указываются в качестве отдельных аргументов, группировка скобок не требуется.
Более подробную информацию о логических операциях с пандами можно найти здесь.
Ответ 2
Чтобы взять элементарный логический ИЛИ двух рядов a
и b
, просто выполните
a | b
Ответ 3
Если вам нужна функция для этого, у нас есть np.logical_or
. Для двух условий вы можете использовать
df[np.logical_or(df<3, df==5)]
Или, для нескольких условий, используйте logical_or.reduce
,
df[np.logical_or.reduce([df<3, df==5])]
Поскольку условия указываются в качестве отдельных аргументов, группировка скобок не требуется.
Более подробную информацию о логических операциях с пандами можно найти здесь.