Deduplicación de datos con Python
En esta lectura, aprenderá más sobre la gestión de duplicados. También aprenderá a identificar y decidir si la deduplicación es la estrategia adecuada para un conjunto de datos. Además, aprenderás algunas funciones comunes de Python para manejar duplicados.
Identificación de duplicados
Antes de tomar una decisión sobre si eliminar o no los valores duplicados, debemos determinar si existen valores duplicados en nuestro conjunto de datos.
Una forma sencilla de identificar duplicados es utilizar la función duplicated() de Pandas. duplicated() es un método de la clase DataFrame.
Esta función devuelve una serie de resultados "verdadero/falso", con "verdadero" indicando que el valor de los datos es un duplicado, y "falso" indicando que es un valor único.
He aquí un ejemplo de un marco de datos de cinco filas:
>>import pandas as pd >>df = pd.DataFrame([['wowyow','cistern',4.0],['wowyow','cistern',4.0],['Splaysh','jug', 5.5],['Splaysh', 'stock',3.3], ['Pipplee','stock',3.0]], columns=['brand', 'style', 'rating']) >>>df
| brand | style | rating | |
|---|---|---|---|
| 0 | wowyow | cistern | 4.0 |
| 1 | wowyow | cistern | 4.0 |
| 2 | Splaysh | jug | 5.5 |
| 3 | Splaysh | stock | 3.3 |
| 4 | Pipplee | stock | 3.0 |
La identificación de duplicados para todo un marco de datos será diferente a la de una sola columna o índice. Asegúrese de utilizar la función duplicated() para un marco de datos completo. La función duplicated() sólo devolverá filas enteras que tengan valores que coincidan exactamente, no sólo valores individuales que coincidan encontrados dentro de una columna. Si desea identificar duplicados sólo para una columna o una serie de columnas dentro de un marco de datos, deberá incluirlo en la parte "subconjunto" del campo de argumento de la función duplicated(). Además, si desea especificar cuál de los duplicados debe mantenerse como "original" en lugar de como duplicado, puede especificarlo en la parte keep del campo de argumentos.
A continuación se muestra un ejemplo de identificación de duplicados en una sola columna (subconjunto) de valores y etiquetado de los últimos duplicados como "falso", de modo que se "mantienen":
Hora de decidir: ¿Suprimir o no suprimir ?
COMO YA HA APRENDIDO, cada conjunto de datos es único y no se puede tratar a todos por igual. A la hora de tomar la decisión de eliminar o no los valores duplicados, piense detenidamente en el propio conjunto de datos y en el objetivo que desea alcanzar. ¿Qué impacto tendrá la eliminación de duplicados en su conjunto de datos y en su objetivo?
1. Decidir eliminar
Debe eliminar los valores duplicados si éstos son claramente erróneos o no representan correctamente el resto de valores únicos del conjunto de datos.

Por ejemplo, puede estar razonablemente seguro de que un profesional de los datos eliminará (en la mayoría de los casos) los valores duplicados de un conjunto de datos que contenga direcciones y precios de viviendas. Contar la misma casa dos veces (en la mayoría de los casos) falseará cualquier conclusión extraída del conjunto de datos en su conjunto, como el precio medio de la casa, el precio total de la casa o incluso el número total de casas. En un caso como éste, un profesional de los datos eliminaría casi con toda seguridad los datos duplicados para representar de forma equitativa los datos restantes durante el análisis y la visualización.
2. Decidir NO eliminar
Debe mantener los datos duplicados en su conjunto de datos si es evidente que los valores duplicados no son errores y deben tenerse en cuenta a la hora de representar el conjunto de datos en su conjunto.

Por ejemplo, un conjunto de datos que marque el número de lanzamientos y distancias de un atleta olímpico de lanzamiento de peso en entrenamiento incluirá probablemente varias distancias duplicadas; sólo por la naturaleza del número de intentos y los límites que una persona puede tener una bola lastrada, habrá valores duplicados, especialmente si las medidas de distancia están etiquetadas con sólo 1 ó 2 decimales. En un caso así, es casi seguro que un profesional de los datos conservaría todos los datos para representarlos equitativamente en su conjunto durante el análisis y la visualización.
No se deje engañar - Cómo hacer la deduplicación
Antes de volver a Python y aprender a eliminar duplicados, definamos el término "deduplicación":
Deduplicación: La eliminación o remoción de valores de datos coincidentes en un conjunto de datos.
Existen varias bibliotecas, funciones y métodos en Python que se pueden utilizar para eliminar valores de datos coincidentes.
Una de las funciones más comunes es Pandas: drop_duplicates()
drop_duplicates() es otro método de DataFrame. Se utiliza para crear un nuevo marco de datos con todas las filas duplicadas eliminadas.
Por ejemplo, utilice un marco de datos de antes en esta lectura:
>>df
>>>
brand style rating 0 Wowyow cistern 4.0 1 Wowyow cistern 4.0 2 Splaysh jug 5.5 3 Splaysh stock 3.3 4 Pipplee stock 3.0
Ahora aplique la función eliminar duplicados:
>>df.drop_duplicates()
>>>
brand style rating 0 Wowyow cistern 4.0 2 Splaysh jug 5.5 3 Splaysh stock 3.3 4 Pipplee stock 3.0
Notará en la salida resultante que la fila duplicada de datos fue eliminada, dejando intactos los valores únicos restantes.
Nota: Tenga en cuenta que la función drop_duplicates(), tal como se ha escrito anteriormente, sólo eliminará los duplicados de coincidencias exactas de filas de datos completas. Si desea eliminar duplicados dentro de una única columna, deberá especificar qué columnas desea comprobar en busca de duplicados utilizando el argumento de la palabra clave subset.
Este ejemplo elimina todas las filas que tienen valores duplicados en la columna style (excepto la primera):
>>print(df)
brand style rating 0 Wowyow cistern 4.0 1 Wowyow cistern 4.0 2 Splaysh jug 5.5 3 Splaysh stock 3.3 4 Pipplee stock 3.0
Este ejemplo elimina todas las filas (excepto la primera) que tienen valores duplicados en las columnas style y rating:
>>print(df)
>>>
brand style rating 0 Wowyow cistern 4.0 1 Wowyow cistern 4.0 2 Splaysh jug 5.5 3 Splaysh stock 3.3 4 Pipplee stock 3.0 brand style rating 0 Wowyow cistern 4.0 2 Splaysh jug 5.5 3 Splaysh stock 3.3 4 Pipplee stock 3.0
Puntos clave
La identificación de valores de datos duplicados en un conjunto de datos es una parte importante de las prácticas de EDA (o "Análisis exploratorio de datos"), en concreto de la limpieza y la validación. Una vez identificados los duplicados, piense en el impacto que tendrá en el conjunto de datos y en el objetivo de su análisis cuando decida eliminar o no los duplicados.
Recursos adicionales
¿Desea obtener más información sobre los duplicados y la deduplicación? Consulte los siguientes enlaces adicionales.