Limpieza básica de datos
Introducción
La limpieza de datos es un paso fundamental en la ciencia de datos y en cualquier proceso analítico. Los datos suelen estar llenos de ruido, inconsistencias y errores que pueden obstruir el análisis efectivo y conducir a conclusiones erróneas. En este artículo, exploraremos las técnicas básicas para limpiar y preparar tus datos para análisis en Python, utilizando la biblioteca Pandas como herramienta principal.
Explicación principal
La limpieza de datos implica varias tareas, desde el manejo de valores faltantes hasta la corrección de errores. A continuación, veremos algunos ejemplos prácticos y un bloque de código que ilustrará estos conceptos.
Manejo de valores faltantes
Un problema común es cómo tratar con los valores faltantes en tus datos. Los valores faltantes pueden ser manejados de varias formas: eliminando las filas, reemplazándolos por el valor medio o la mediana, o imputando valores basados en otros datos.
import pandas as pd
# Crear un DataFrame con algunos valores faltantes
data = {
'A': [1, 2, None, 4],
'B': ['a', 'b', 'c', None]
}
df = pd.DataFrame(data)
# Mostrar los datos originales
print("Datos originales:")
print(df)
# Eliminar filas con valores faltantes
df_no_nulls = df.dropna()
print("\nDespués de eliminar filas con valores faltantes:")
print(df_no_nulls)
# Reemplazar valores faltantes por el valor medio (para 'A')
df_mean = df.fillna(df['A'].mean())
print("\nDespués de reemplazar los valores faltantes por la media:")
print(df_mean)
Manejo de errores en tipos de datos
Es importante asegurarte de que tus columnas contengan los tipos de datos adecuados. Por ejemplo, si tienes una columna numérica con valores como 'NaN' o 'None', podrías convertirlos a valores numéricos.
# Convertir valores faltantes en NaN y luego reemplazarlos por 0
df['A'] = df['A'].replace([None], [0])
print("\nDespués de convertir los valores faltantes a 0:")
print(df)
Corrección de errores en etiquetas
En algunos casos, podrías tener etiquetas erróneas o inconsistencias. Por ejemplo, nombres de productos con mayúsculas y minúsculas que deberían ser uniformes.
# Convertir todas las letras a minúsculas para consistencia
df['B'] = df['B'].str.lower()
print("\nDespués de convertir los valores en 'B' a minúsculas:")
print(df)
Detectar y corregir outliers
Outliers (valores extremos) pueden distorsionar tus análisis. Generalmente, se identifican como valores muy alejados del rango normal.
# Identificar outliers en la columna 'A'
q1 = df['A'].quantile(0.25)
q3 = df['A'].quantile(0.75)
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
# Reemplazar outliers con el valor de la mediana
df['A'] = df['A'].clip(lower=lower_bound, upper=upper_bound)
print("\nDespués de reemplazar los outliers por la mediana:")
print(df)
Errores típicos / trampas
- Ignorar valores faltantes: No eliminar adecuadamente o no considerar el impacto que pueden tener en tu análisis.
- Confundir tipos de datos: Presuponer que tus columnas numéricas son siempre numéricas y olvidar convertir cadenas a números.
- No detectar outliers: No identificar y corregir los valores extremos que distorsionan el análisis.
Checklist accionable
- Identifica y maneja valores faltantes usando
df.dropna()odf.fillna(). - Verifica tipos de datos con
df.dtypesy convierte columnas numéricas aintofloatcuando sea necesario. - Convierte etiquetas incoherentes: usa métodos como
.str.lower()para garantizar consistencia. - Detecta outliers usando la regla del rango intercuartílico (IQR) y corréguelos según sea necesario.
Siguientes pasos
- Avanza a la Unidad 10 — Introducción al ecosistema científico, donde aprenderás más sobre NumPy y Pandas.
- Explora temas avanzados de análisis de datos en la sección de Python para datos.
- Familiarízate con la ciencia de aprendizaje automático (Machine Learning) en los recursos recomendados.
¡Esperamos que esta guía te ayude a preparar tus datos correctamente y llevar tu análisis al siguiente nivel!