OR lógico por elementos en Pandas

1 minuto de lectura

avatar de usuario
keith

Me gustaría el operador OR lógico por 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 O?

avatar de usuario
deinonychusaurio

El operador correspondiente es |:

 df[(df < 3) | (df == 5)]

verificaría por elementos 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 utilizar

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, la agrupación de paréntesis no es necesaria.

Puede encontrar más información sobre operaciones lógicas con pandas aquí.

  • Los corchetes redondos son importante

    – Gerardo

    8 de agosto de 2016 a las 15:22


  • | y np.logical_or se comportan de manera diferente en presencia de NaN. Consulte stackoverflow.com/q/37131462/2596586

    – franco

    14 de noviembre de 2019 a las 0:18


  • Solo un comentario: or no está trabajando aquí. Solamente | obras.

    – S.Wu

    15 de marzo de 2020 a las 0:17

Para tomar el elemento lógico OR de dos Series a y b solo haz

a | b

¿Ha sido útil esta solución?