
Limpieza y Depuración de Datos con Pandas: Guía Completa para Ciencia de Datos
Aprende a limpiar y depurar datos en Pandas. Guía paso a paso para principiantes en ciencia de datos con ejemplos prácticos en Python.
¡Da tus primeros pasos en la limpieza de datos con Pandas! En este tutorial completo te guiaré paso a paso para que aprendas a limpiar y depurar datos en Pandas, transformando datos desordenados en conjuntos listos para analizar.
Objetivo: Aprender a usar las funciones de Pandas para limpiar y depurar datos, manejando valores nulos, duplicados, tipos de datos y outliers.
Paso 1: Instalación e Importación
Instala pandas si aún no lo tienes. Abre tu terminal o prompt de comandos y escribe:
pip install pandas numpy
Una vez instalado, puedes importarlo en tu código Python:
import pandas as pd
import numpy as np
Paso 2: Exploración Inicial de los Datos
Antes de limpiar, conoce tus datos. Carga tu DataFrame y explóralo.
# Carga tu DataFrame (df) aquí. Por ejemplo:
# df = pd.read_csv('datos_sucios.csv')
# Mira las primeras filas
print("Primeras filas:")
print(df.head())
# Obtén información general sobre la estructura y los tipos de datos
print("\nInformación del DataFrame:")
print(df.info())
# Estadísticas descriptivas rápidas para columnas numéricas
print("\nEstadísticas descriptivas:")
print(df.describe())
Paso 3: Manejo de Valores Nulos
Los valores faltantes son comunes. Identifícalos y decide cómo manejarlos.
# Identifica los nulos
print("Valores nulos por columna:")
print(df.isnull().sum())
# Opción A: Eliminar filas o columnas con nulos
df_limpio = df.dropna() # Elimina filas con algún nulo
df_limpio = df.dropna(axis=1) # Elimina columnas con algún nulo
df_limpio = df.dropna(subset=['columna_importante']) # Elimina filas donde una columna específica es nula
# Opción B: Rellenar nulos (imputación)
# Para números: usa mediana
df['columna_numerica'].fillna(df['columna_numerica'].median(), inplace=True)
# Para texto: usa un valor personalizado
df['columna_texto'].fillna('Desconocido', inplace=True)
# Rellenar con el valor anterior o siguiente
df['columna'].fillna(method='ffill', inplace=True) # forward fill
Paso 4: Eliminar Duplicados
Los datos repetidos pueden sesgar el análisis. Elimínalos.
# Elimina filas duplicadas exactas
df = df.drop_duplicates()
# Elimina duplicados basados en columnas clave
df = df.drop_duplicates(subset=['columna_id'])
Paso 5: Corregir Tipos de Datos
Asegúrate de que los tipos de datos sean correctos.
# Conversión a numérico
df['precio'] = pd.to_numeric(df['precio'], errors='coerce')
# Conversión a datetime
df['fecha'] = pd.to_datetime(df['fecha'], format='%d/%m/%Y', errors='coerce')
# Conversión a categoría
df['categoria'] = df['categoria'].astype('category')
# Verifica los cambios
print(df.dtypes)
Paso 6: Manejo de Valores Atípicos (Outliers)
Los outliers pueden afectar el análisis. Identifícalos y manéjalos.
# Usa el rango intercuartílico (IQR) para una columna numérica
Q1 = df['columna'].quantile(0.25)
Q3 = df['columna'].quantile(0.75)
IQR = Q3 - Q1
# Define los límites
limite_inferior = Q1 - 1.5 * IQR
limite_superior = Q3 + 1.5 * IQR
# Filtra para excluir outliers
df_sin_outliers = df[(df['columna'] >= limite_inferior) & (df['columna'] <= limite_superior)]
# O marca los outliers
df['es_outlier'] = np.where((df['columna'] < limite_inferior) | (df['columna'] > limite_superior), 1, 0)
Paso 7: Estandarizar Texto
Unifica formatos en columnas de texto.
# Minúsculas y eliminar espacios extra
df['columna_texto'] = df['columna_texto'].str.strip().str.lower()
# Corregir palabras comunes
df['pais'] = df['pais'].replace({'eeuu': 'estados unidos', 'usa': 'estados unidos'})
Paso 8: Verificación Final y Exportación
Revisa tu trabajo y guarda los datos limpios.
# Un último vistazo
print(df.info())
print(df.head())
# Exporta a un nuevo archivo
df.to_csv('datos_limpios.csv', index=False)
print("¡Limpieza completada!")
Conclusión
¡Felicidades! Ahora dominas los fundamentos para limpiar y depurar datos en Pandas. Practica con tus propios datasets y explora más funciones avanzadas. Si tienes preguntas, déjalas en los comentarios.
Para más tutoriales sobre ciencia de datos y Python, visita nuestra sección de tutoriales.
¡Con estos conocimientos ya puedes trabajar con datos limpios en Python usando Pandas!
💡 Tip Importante
🔍 Valida y Depura tu Proceso de Limpieza
Para asegurar que tu limpieza sea efectiva y evitar errores, sigue estos consejos:
Haz una copia de respaldo antes de modificar tus datos:
df_original = df.copy()
Usa aserciones para verificar integridad después de cada paso:
assert df.isnull().sum().sum() == 0, "Aún hay valores nulos" assert df.duplicated().sum() == 0, "Hay duplicados restantes"
Prueba en una muestra pequeña primero para detectar problemas:
df_sample = df.head(100).copy() # Aplica tus pasos de limpieza en df_sample
Documenta cada cambio para reproducibilidad:
# Paso 1: Eliminé duplicados - redujo filas de 1000 a 950
📚 Documentación: Lee más sobre validación de datos en pandas aquí
¡Estos consejos te ayudarán a limpiar datos de manera confiable y sin errores!
No hay comentarios aún
Sé el primero en comentar este tutorial.