Me gustaría el operador OR lógico de elementos. Sé que "o" en sí mismo no es lo que estoy buscando.
Soy consciente de que y corresponde a &
y NO, ~
. Pero ¿qué pasa con el quirófano?
Respuestas:
El operador correspondiente es |
:
df[(df < 3) | (df == 5)]
verificaría elementwise si el valor es menor que 3 o igual a 5.
Si necesita una función para hacer esto, tenemos np.logical_or
. Para dos condiciones, puede usar
df[np.logical_or(df<3, df==5)]
O, para múltiples condiciones, use el logical_or.reduce
,
df[np.logical_or.reduce([df<3, df==5])]
Dado que las condiciones se especifican como argumentos individuales, no es necesario agrupar entre paréntesis.
Puede encontrar más información sobre operaciones lógicas con pandas aquí .
|
y se np.logical_or
comportan de manera diferente en presencia de NaN. Ver stackoverflow.com/q/37131462/2596586
or
no funciona aquí. Solo |
funciona.
Para tomar el OR lógico por elementos de dos Series a
y b
simplemente hacer
a | b