De lo crudo a lo refinado Un recorrido por la preprocesamiento de datos – Parte 3 Datos duplicados

Crude to refined A journey through data preprocessing - Part 3 Duplicate data

Este artículo explicará cómo identificar registros duplicados en los datos y las diferentes formas de lidiar con el problema de tener registros duplicados.

Foto de Pineapple Supply Co. en Unsplash

¿Por qué la presencia de registros duplicados en los datos es un problema?

La presencia de valores duplicados en los datos a menudo es ignorada por muchos programadores. Sin embargo, tratar con los registros duplicados en los datos es bastante importante.

Tener registros duplicados puede llevar a análisis de datos incorrectos y toma de decisiones incorrectas.

Por ejemplo, ¿qué sucede cuando reemplazas valores faltantes (imputación) por la media en datos con registros duplicados?

En este escenario, se puede utilizar un valor medio incorrecto para la imputación. Veamos un ejemplo.

Considera los siguientes datos. Los datos contienen dos columnas, Nombre y Peso. Ten en cuenta que el valor del peso para “John” se repite. Además, falta el valor del peso para “Steve”.

Imagen del autor

Si alguien desea imputar el valor faltante de peso para Steve con la media de todos los valores de peso, entonces la imputación se realizaría utilizando la media incorrecta, es decir,

(98 + 50 + 67 + 66 + 50)/5 = 66.2

Pero la media real de los datos al ignorar el valor duplicado es

(98 + 50 + 67 + 66)/4 = 70.25

Por lo tanto, el valor faltante se imputará incorrectamente si no hacemos algo respecto a los registros duplicados.

Además, los valores duplicados incluso pueden afectar las decisiones comerciales que se toman utilizando datos defectuosos.

En resumen, los registros duplicados de los datos deben ser tratados para mantener los datos libres de problemas.

Ahora, veamos diferentes métodos para tratar con los registros duplicados en los datos.

Identificar los valores duplicados en los datos

Podemos utilizar el método duplicated de pandas para identificar las filas que están duplicadas en los datos.

Ahora, veamos los valores duplicados utilizando un ejemplo.

## Importar las librerías requeridasimport numpy as npimport pandas as pdimport warningswarnings.filterwarnings('ignore')## Crear un dataframeName = ['Mark', 'John', 'Jotaro', 'Mark', 'John', 'Steve']Weight = [98, 50, 67, 66, 50, np.nan]Height = [170, 175, 172, 170, 175, 166]df = pd.DataFrame()df['Name'] = Namedf['Weight'] = Weightdf['Height'] = Heightdf

Identificar valores duplicados:

## Identificar los valores duplicados (comportamiento por defecto)df.duplicated()

Obtenemos el valor True, donde se encuentra el registro duplicado, y False donde se encuentran los registros únicos.

Observa que de forma predeterminada, el método duplicated() utiliza todas las columnas para encontrar registros duplicados. Pero también podemos usar un subconjunto de columnas para encontrar los duplicados. Para hacer esto, el método duplicated() tiene un parámetro llamado subset. El parámetro subset toma una lista de nombres de columnas que queremos usar para encontrar duplicados.

## Parámetro subset del método duplicated()df.duplicated(subset=['Name','Height'])

Además, el método duplicated() tiene un parámetro importante llamado keep. El valor del parámetro keep decide si consideramos el primer registro o el último registro como único en todos los registros duplicados. También tenemos la opción de considerar todos los registros duplicados como no únicos.

keep = ‘first’: Se considera único el primer registro de todos los registros duplicados

keep = ‘last’: Se considera único el último registro de todos los registros duplicados

keep = False: Todos los registros duplicados se consideran como no únicos.

## parámetro keep del método duplicated()df.duplicated(keep='first')

Observa aquí que se considera único el primer valor duplicado (en el índice 1) y todos los demás (en el índice 4) se consideran duplicados.

## parámetro keep del método duplicated()df.duplicated(keep='last')

Observa aquí que se considera único el último valor duplicado (en el índice 4) y todos los demás (en el índice 1) se consideran duplicados.

## parámetro keep del método duplicated()df.duplicated(keep=False)

Observa aquí que se muestran todos los registros duplicados (en el índice 1 y el índice 4).

Cómo lidiar con registros duplicados en los datos

El siguiente paso después de identificar los registros duplicados es lidiar con ellos.

Hay dos formas de lidiar con los registros duplicados en los datos.

Image by author

Eliminar los registros duplicados

Comencemos con el enfoque donde eliminamos los registros duplicados.

Podemos utilizar el método drop_duplicates() de pandas para esto.

Por defecto, el método drop_duplicates() mantiene el primer registro del conjunto de todos los registros duplicados y luego elimina el resto de ellos de los datos. Además, por defecto, el método drop_duplicates() utiliza todas las columnas para identificar los registros duplicados.

Pero este comportamiento por defecto se puede cambiar utilizando dos parámetros del método drop_duplicates(). Son

  1. keep
  2. subset

Funcionan exactamente como los parámetros keep y subset del método duplicated().

"""eliminando valores duplicados usando el método drop_duplicates() de pandas (comportamiento predeterminado)"""df1 = df.drop_duplicates()df1

"""eliminando valores duplicados usando el método drop_duplicates() de pandas con los parámetros subset y keep (comportamiento personalizado)"""df2 = df.drop_duplicates(subset=['Weight'], keep='last')df2

Actualizando los registros duplicados

A veces queremos reemplazar los registros duplicados con algún valor. Digamos que encontramos dos registros duplicados, luego nos enteramos de que la persona que adquirió los datos puso accidentalmente el nombre incorrecto en uno de los registros duplicados. Entonces, en ese caso, querríamos poner el nombre de la persona correcta. Así se resolvería el problema de los valores duplicados.

df.duplicated(keep=False)

Aquí, tenemos registros duplicados en los índices 1 y 4. Ahora, si cambiamos el valor de la columna ‘Name’ en el índice 1, ya no tendremos valores duplicados.

## cambiando el valor de 'Name' para el primer registro duplicadodf.iloc[1, 0] = 'Dio' df

Hemos cambiado el valor de ‘Name’ para el primer registro duplicado. Ahora, veamos si hay registros duplicados en los datos nuevamente o no.

df.duplicated()

Ahora, no tenemos registros duplicados.

¡Gracias por leer! Si tienes alguna opinión sobre el artículo, por favor avísame.

¿Estás teniendo dificultades para elegir qué leer a continuación? No te preocupes, conozco un artículo que creo que te resultará interesante.

De lo crudo a lo refinado: Un viaje a través de la preprocesamiento de datos – Parte 2: Valores faltantes

¿Por qué lidiar con valores faltantes?

pub.towardsai.net

y uno más…

De lo crudo a lo refinado: Un viaje a través de la preprocesamiento de datos – Parte 1: Escalado de características

A veces, los datos que recibimos para nuestras tareas de aprendizaje automático no están en un formato adecuado para programar con Scikit-Learn…

pub.towardsai.net

Shivam Shinde

  • Conéctate conmigo en LinkedIn
  • De manera similar, puedes seguirme en VoAGI

¡Que tengas un gran día!

Referencias:

Manejo de valores duplicados en un DataFrame de Pandas

Como analista de datos, es nuestra responsabilidad garantizar la integridad de los datos para obtener ideas precisas y confiables. Datos…

stackabuse.com

Encontrar filas duplicadas en un Dataframe basado en todas o en columnas seleccionadas – GeeksforGeeks

Un portal de ciencias de la computación para geeks. Contiene ciencias de la computación bien escritas, bien pensadas y bien explicadas…

www.geeksforgeeks.org

Método duplicated() de Pandas DataFrame

W3Schools ofrece tutoriales en línea gratuitos, referencias y ejercicios en todos los principales lenguajes web. Cubriendo…

www.w3schools.com

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Desbloqueando la puerta a la ciencia de datos tu guía de estudio definitiva para GATE 2024 en DS y AI

Introducción El Examen de Aptitud para la Graduación en Ingeniería (GATE, por sus siglas en inglés) es un examen de i...

Investigación

Usando Inteligencia Artificial, científicos encuentran un medicamento que podría combatir infecciones resistentes a los medicamentos.

El algoritmo de aprendizaje automático identificó un compuesto que mata Acinetobacter baumannii, una bacteria que ace...

Inteligencia Artificial

Los desarrolladores buscan OpenUSD en la era de la IA y la digitalización industrial

Desde fábricas inteligentes hasta sistemas ferroviarios de próxima generación, desarrolladores y empresas de todo el ...

Inteligencia Artificial

La Sintonización de Símbolos de Google es una nueva técnica de ajuste fino que permite el aprendizaje en contexto en LLMs

Gracias a la ampliación de modelos de lenguaje, el aprendizaje automático ha experimentado un aumento revolucionario,...

Aprendizaje Automático

DeepMind presenta AlphaDev un agente de aprendizaje por refuerzo profundo que descubre algoritmos de clasificación más rápidos desde cero.

Desde la Inteligencia Artificial y el Análisis de Datos hasta la Criptografía y la Optimización, los algoritmos juega...

Inteligencia Artificial

El debate sobre la seguridad de la IA está dividiendo Silicon Valley

El drama de liderazgo de OpenAI es el último estallido en el acalorado debate entre los tecnócratas que buscan la seg...