Eliminar duplicados
Eliminar duplicados#
Un conjunto de datos puede tener duplicados, es decir, registros que tienen los mismos valores en todas sus columnas. Para eliminar estos duplicados, se puede utilizar la función drop_duplicates()
, por ejemplo, lo puedo usar en el siguiente código:
print(f'Antes de eliminar duplicados: {muestra_covid.shape}')
sin_duplicados_mc = muestra_covid.drop_duplicates()
print(f'Después de eliminar duplicados: {sin_duplicados_mc.shape}')
Antes de eliminar duplicados: (1323501, 12)
Después de eliminar duplicados: (1323501, 12)
¡No se eliminó ningún caso! Esto se debe a que no existen duplicados en nuestro conjunto de datos.
Veamos un caso de ejemplo solamente para que puedas ver como funciona la función drop_duplicates()
.
Si tenemos el siguiente listado de estudiantes:
estudiantes= pd.DataFrame(
{'Nombre': ["Andrea", "Berenice", "Carlos", "Camila", "Guadalupe", "Andrea", "Jorge", "Berenice", "Carlos"],
'Calificaciones': [10, 8, 9, 7, 6, 10, 8, 9, 7]})
estudiantes
Nombre | Calificaciones | |
---|---|---|
0 | Andrea | 10 |
1 | Berenice | 8 |
2 | Carlos | 9 |
3 | Camila | 7 |
4 | Guadalupe | 6 |
5 | Andrea | 10 |
6 | Jorge | 8 |
7 | Berenice | 9 |
8 | Carlos | 7 |
Podemos filtrar un nuevo conjunto de datos eliminando los duplicados:
sin_duplicados_estudiantes = estudiantes.drop_duplicates()
print(f'Estudiantes con duplicados: {estudiantes.shape}')
print(f'Estudiantes sin duplicados: {sin_duplicados_estudiantes.shape}')
sin_duplicados_estudiantes
Estudiantes con duplicados: (9, 2)
Estudiantes sin duplicados: (8, 2)
Nombre | Calificaciones | |
---|---|---|
0 | Andrea | 10 |
1 | Berenice | 8 |
2 | Carlos | 9 |
3 | Camila | 7 |
4 | Guadalupe | 6 |
6 | Jorge | 8 |
7 | Berenice | 9 |
8 | Carlos | 7 |
No era sencillo identificar a simple vista (incluso en un conjunto de datos tan pequeño) que Andrea
estaba duplicada en el conjunto de datos. En un conjunto de datos grande, en particular uno construido a partir de la unión de dos conjuntos de datos, esta función puede ser de muchísima utilidad.
Sin embargo
Es relevante tener en cuenta que si eliminamos un identificador que pueda filtrar a un caso único (por ejemplo, números de identificación de usuarios), es posible que se eliminen filas de manera errónea.
Importante
Esta función no elimina coincidencias en una columna, para ello podemos utilizar el método .loc
.