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.