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?
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: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étododrop()
elimina la fila de entrada y el métodoeq()
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.