La preparación y limpieza de datos es una etapa crucial en el proceso de análisis de datos. Esta fase asegura que los datos sean precisos, completos y estén en un formato adecuado para el análisis. A continuación, se desglosan los conceptos clave y los pasos necesarios para preparar y limpiar los datos de manera efectiva.

Conceptos Clave

  1. Calidad de los Datos: Se refiere a la precisión, completitud, consistencia y actualidad de los datos.
  2. Datos Faltantes: Valores que no están presentes en el conjunto de datos.
  3. Datos Atípicos (Outliers): Valores que se desvían significativamente del resto de los datos.
  4. Normalización y Estandarización: Procesos para ajustar los datos a una escala común.
  5. Codificación de Datos: Transformar datos categóricos en un formato numérico.

Pasos para la Preparación y Limpieza de Datos

  1. Revisión Inicial de los Datos

Antes de comenzar con la limpieza, es importante revisar el conjunto de datos para entender su estructura y contenido.

  • Inspección Visual: Examinar los datos en una hoja de cálculo o una herramienta de visualización.
  • Resumen Estadístico: Utilizar funciones estadísticas básicas para obtener una visión general de los datos (media, mediana, desviación estándar).

  1. Identificación y Tratamiento de Datos Faltantes

Los datos faltantes pueden afectar significativamente los resultados del análisis. Existen varias estrategias para manejar los datos faltantes:

  • Eliminación de Filas/Columnas: Si la cantidad de datos faltantes es pequeña, se pueden eliminar las filas o columnas afectadas.
  • Imputación de Datos: Rellenar los valores faltantes utilizando métodos como la media, mediana o un valor constante.
  • Modelos Predictivos: Utilizar algoritmos de machine learning para predecir los valores faltantes.

Ejemplo en Python:

import pandas as pd
from sklearn.impute import SimpleImputer

# Cargar datos
data = pd.read_csv('datos.csv')

# Imputación de datos faltantes con la media
imputer = SimpleImputer(strategy='mean')
data_imputed = imputer.fit_transform(data)

  1. Detección y Tratamiento de Datos Atípicos

Los datos atípicos pueden distorsionar los resultados del análisis. Es importante identificarlos y decidir cómo manejarlos.

  • Métodos Estadísticos: Utilizar el rango intercuartílico (IQR) o desviación estándar para identificar outliers.
  • Visualización: Utilizar gráficos como boxplots para detectar visualmente los outliers.

Ejemplo en Python:

import numpy as np

# Identificación de outliers usando el rango intercuartílico (IQR)
Q1 = data.quantile(0.25)
Q3 = data.quantile(0.75)
IQR = Q3 - Q1

outliers = ((data < (Q1 - 1.5 * IQR)) | (data > (Q3 + 1.5 * IQR)))
data_cleaned = data[~outliers.any(axis=1)]

  1. Normalización y Estandarización

Para asegurar que los datos estén en una escala común, se pueden aplicar técnicas de normalización y estandarización.

  • Normalización: Escalar los datos para que estén en un rango específico (por ejemplo, 0 a 1).
  • Estandarización: Ajustar los datos para que tengan una media de 0 y una desviación estándar de 1.

Ejemplo en Python:

from sklearn.preprocessing import StandardScaler, MinMaxScaler

# Normalización
scaler = MinMaxScaler()
data_normalized = scaler.fit_transform(data)

# Estandarización
scaler = StandardScaler()
data_standardized = scaler.fit_transform(data)

  1. Codificación de Datos Categóricos

Los datos categóricos deben ser transformados en un formato numérico para ser utilizados en análisis estadísticos y modelos predictivos.

  • Codificación de Etiquetas (Label Encoding): Asignar un número entero a cada categoría.
  • Codificación One-Hot (One-Hot Encoding): Crear una columna binaria para cada categoría.

Ejemplo en Python:

from sklearn.preprocessing import LabelEncoder, OneHotEncoder

# Codificación de etiquetas
label_encoder = LabelEncoder()
data['categoria_codificada'] = label_encoder.fit_transform(data['categoria'])

# Codificación one-hot
one_hot_encoder = OneHotEncoder()
data_one_hot = one_hot_encoder.fit_transform(data[['categoria']]).toarray()

Ejercicio Práctico

Ejercicio 1: Limpieza de Datos Faltantes

Dado el siguiente conjunto de datos, realiza la imputación de los valores faltantes utilizando la mediana.

import pandas as pd
import numpy as np

# Crear un DataFrame de ejemplo
data = pd.DataFrame({
    'A': [1, 2, np.nan, 4, 5],
    'B': [5, np.nan, np.nan, 8, 10],
    'C': [10, 20, 30, 40, 50]
})

# Imputación de datos faltantes con la mediana
imputer = SimpleImputer(strategy='median')
data_imputed = imputer.fit_transform(data)

# Convertir el resultado a un DataFrame
data_imputed = pd.DataFrame(data_imputed, columns=data.columns)
print(data_imputed)

Solución:

import pandas as pd
import numpy as np
from sklearn.impute import SimpleImputer

# Crear un DataFrame de ejemplo
data = pd.DataFrame({
    'A': [1, 2, np.nan, 4, 5],
    'B': [5, np.nan, np.nan, 8, 10],
    'C': [10, 20, 30, 40, 50]
})

# Imputación de datos faltantes con la mediana
imputer = SimpleImputer(strategy='median')
data_imputed = imputer.fit_transform(data)

# Convertir el resultado a un DataFrame
data_imputed = pd.DataFrame(data_imputed, columns=data.columns)
print(data_imputed)

Resumen

En esta sección, hemos cubierto los conceptos y pasos esenciales para la preparación y limpieza de datos. La calidad de los datos es fundamental para obtener resultados precisos y confiables en el análisis de datos. Asegúrate de revisar, limpiar y transformar tus datos adecuadamente antes de proceder con el análisis. En el próximo módulo, exploraremos técnicas avanzadas de análisis estadístico.

© Copyright 2024. Todos los derechos reservados