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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.