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.

Eliminación de filas duplicadas en un marco de datos con pandas df.drop(), no df.drop_duplicates.

He estado dando vueltas con este código. Tengo un marco de datos con datos para 2018, 2019, 2020 y 2021. A veces hay filas duplicadas, pero como el índice es diferente, pd.drop_duplicates no funciona y después de solucionar problemas durante unas horas, decidí simplemente eliminar todas las filas que podrían tener una fila duplicada cuando limpio mi conjunto de datos; sin embargo, cuando ejecuto el siguiente código y extraigo mi nuevo marco de datos pandas limpio, las filas que eliminé en el for loop no se eliminan del marco de datos.

La variable ‘POS’ para la que estoy encontrando valores únicos es un identificador de posición.

positions = np.unique(df[['POS']].values).flatten().tolist() #encontrar todas las posiciones únicas

for position in positions:
    index2 = df.index[df['POS'] == position].tolist() #recordar índice de posiciones únicas

#if, a continuación, elimina todos los registros y sus duplicados
if int(len(index2)) > 4:
    for i in index2:
        df.drop(i)


¡Cualquier ayuda o dirección es muy apreciada! 🙂

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás tratando de eliminar filas duplicadas de tu marco de datos. Podrías intentar usar el método .drop_duplicates() en tu marco de datos. Este método tomará un subconjunto de columnas y eliminará cualquier fila que tenga valores duplicados en esas columnas. Por ejemplo, si quisieras eliminar cualquier fila que tenga valores duplicados en la columna POS, podrías usar el siguiente código:

    df.drop_duplicates(subset=['POS'], inplace=True)
    

    Esto eliminará cualquier fila que tenga valores duplicados en la columna POS, y el argumento inplace=True hará que los cambios se realicen en el marco de datos en su lugar.

Comments are closed.