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