OR lógico por elementos en Pandas

Respuestas:

129

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í .

deinonychusaur
fuente
30
Los paréntesis son importantes
Gerard
4
|y se np.logical_orcomportan de manera diferente en presencia de NaN. Ver stackoverflow.com/q/37131462/2596586
Frank
Solo un comentario: orno funciona aquí. Solo |funciona.
alanwsx
11

Para tomar el OR lógico por elementos de dos Series ay bsimplemente hacer

a | b
Jonathan Stray
fuente