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! 🙂
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 columnaPOS
, podrías usar el siguiente código:Esto eliminará cualquier fila que tenga valores duplicados en la columna
POS
, y el argumentoinplace=True
hará que los cambios se realicen en el marco de datos en su lugar.