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.

Descubrir si todos los datos en una fila de un DataFrame de pandas son iguales excepto por una columna en particular.

Pude lograr que funcione con la ayuda de SO:

# El string de entrada cambia pero siempre se pasa el que necesito
input_string = "random string"

df.loc[input_string, df.drop(input_string).eq(111).all()] = 111

El código anterior básicamente toma una columna y verifica si todos los valores de celda del DataFrame en esa columna, excepto el especificado por el input_string, son iguales a 111. Si es así, también establece ese valor en 111.

¿Cómo puedo hacer esto para una fila en su lugar?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para hacer esto para una fila en su lugar, necesitas transponer el DataFrame utilizando el método T, que convertirá tus filas en columnas y viceversa. Luego puedes realizar la misma operación que antes, pero tratando las filas como columnas. Aquí tienes un ejemplo:

    # Input row changes but the one I need is always passed in
    input_row = "fila aleatoria"
    
    df.T.loc[input_row, df.T.drop(input_row).eq(111).all()] = 111
    

    En este código, primero transponemos el DataFrame utilizando el método T, que convierte las filas en columnas y viceversa. Luego realizamos la misma operación que antes, pero tratando las filas como columnas. El método drop() elimina la fila de entrada y el método eq() verifica si todos los valores de las filas restantes de esa columna son iguales a 111. Finalmente, establecemos el valor de la fila de entrada en 111 si todos los demás valores en esa columna también son 111.

Comments are closed.