es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Misma comparación entre dos columnas de DataFrame para formar una máscara.

Tengo un Dataframe de pandas con las columnas col1 y col2. Estoy tratando de construir col3 como:

df["col3"] = (df["col1"] == 1) | (df["col2"] ==1)

y funciona. Traté de reescribirlo como:

df["col3"] = any([df[c] == 1 for c in ["col1", "col2"]])

pero obtengo el famoso ValueError: The truth value of a series is ambiguous ...

Incluso traté de reescribir any( .. ) como pd.Series( .. ).any(), pero no funcionó.

¿Cómo lo harías tú?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar la función np.logical_or para obtener el mismo resultado:

    df["col3"] = np.logical_or(df["col1"] == 1, df["col2"] == 1)
    

Comments are closed.