Я хотів би елементально логічний оператор АБО. Я знаю, що "або" саме не є тим, що я шукаю.
Я знаю , що і відповідає &
і 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/2596586
or
тут не працює. Тільки |
працює.
Взяти елементарно логічне АБО двох серій a
і b
просто зробити
a | b