Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Programación orientada a datos con Python, Unidad 12 — Mini-proyecto orientado a datos, 12.1 — Proyecto completo guiado ·

Limpieza y transformación

Limpieza y transformación: El paso previo a un análisis de datos

Introducción

La limpieza y transformación de datos son esenciales para preparar los conjuntos de datos antes de que puedan ser utilizados en modelos predictivos o análisis avanzados. Este proceso es crucial porque los datos brutos suelen estar llenos de inconsistencias, valores faltantes, y formatos incorrectos que pueden distorsionar los resultados del análisis. En esta guía, exploraremos cómo limpiar y transformar nuestros datos utilizando Python.

Explicación principal con ejemplos

Ejemplo: Procesamiento de un conjunto de datos sobre ventas

Supongamos que tenemos un archivo CSV con registros de ventas en una empresa. Vamos a ver cómo podemos preparar este conjunto de datos para análisis más avanzados:

import pandas as pd

# Cargar el conjunto de datos desde un archivo CSV
df = pd.read_csv('ventas.csv')

# Visualizar las primeras filas del DataFrame
print(df.head())

Paso 1: Manejo de valores faltantes

Un valor faltante es una observación que carece de información en una variable específica. Estos pueden ser manejados de varias formas:

  • Eliminación: Si el conjunto de datos es pequeño y los valores faltantes representan un porcentaje alto, podemos eliminar las filas.
  • Sustitución con el promedio o mediana: Para variables numéricas, se puede reemplazar el valor faltante con la media o mediana del resto de los datos.
  • Sustitución con una cadena específica: Para variables categóricas, podría ser útil reemplazar el valor faltante con "Unknown" o un valor específico que tenga sentido en el contexto.
# Sustituir valores faltantes con la mediana del precio de venta
df['precio'] = df['precio'].fillna(df['precio'].median())

# Eliminar filas donde todos los valores son NaN
df.dropna(inplace=True)

Paso 2: Conversión de tipos

A veces, las variables pueden estar en el formato incorrecto. Por ejemplo, una variable que debería ser numérica puede estar como texto.

# Convertir una columna de texto a numérico
df['precio'] = pd.to_numeric(df['precio'], errors='coerce')

Paso 3: Normalización y formateo

Las variables pueden tener formatos diferentes, lo que dificulta compararlas. La normalización es la técnica de transformar las variables a un formato común.

# Convertir fechas a formato datetime
df['fecha'] = pd.to_datetime(df['fecha'])

Paso 4: Creación de nuevas variables

A veces, podemos crear nuevas variables que ayuden a mejorar el análisis. Por ejemplo, podríamos crear una variable "mes" a partir de la columna "fecha".

# Crear nueva variable 'mes' a partir de 'fecha'
df['mes'] = df['fecha'].dt.month

Paso 5: Eliminación de variables innecesarias

Algunas columnas pueden no ser necesarias para el análisis y podrían ocasionar confusión. Es mejor eliminarlas.

# Eliminar columna innecesaria
df.drop('columna_innecesaria', axis=1, inplace=True)

Errores típicos / trampas

1. Olvidarse de la consistencia en el formato de fechas

Asegúrate de que todas las fechas estén en un formato consistente antes de convertirlas.

# Verificar formato correcto
print(df['fecha'].dtype)

2. Ignorar valores extremos o outliers

Estos pueden distorsionar estadísticas y análisis, por lo que es crucial identificarlos y decidir cómo manejarlos (eliminar, reemplazar o ignorar).

# Identificar outliers en una variable numérica
q1 = df['precio'].quantile(0.25)
q3 = df['precio'].quantile(0.75)
iqr = q3 - q1
df = df[(df['precio'] >= q1 - 1.5 * iqr) & (df['precio'] <= q3 + 1.5 * iqr)]

3. No documentar los cambios realizados en el conjunto de datos

Es importante mantener un registro de todas las transformaciones y limpiezas aplicadas a los datos.

# Guardar nota sobre la limpieza del dato
df['notas'] = df['notas'].combine_first(pd.Series(['Limpieza de valores faltantes']))

Checklist accionable

  1. Identificar y manejar valores faltantes.
  2. Convertir variables a tipos adecuados.
  3. Normalizar fechas y otros formatos.
  4. Crear nuevas variables útiles para el análisis.
  5. Eliminar columnas innecesarias.
  6. Identificar y manejar outliers.
  7. Documentar todas las transformaciones aplicadas a los datos.

Siguientes pasos

  • Revisión final del conjunto de datos: Verifica que no queden inconsistencias visibles.
  • Ejecutar análisis básicos para validar la limpieza: Utiliza estadísticas descriptivas para asegurarte de que las transformaciones se aplicaron correctamente.
  • Preparar los datos para el modelo o el análisis.

Siguiendo estos pasos, podrás preparar tus conjuntos de datos para análisis y modelos predictivos con mayor precisión.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).