La limpieza de datos es una etapa crucial en el análisis de datos, ya que garantiza que los datos sean precisos, completos y estén en un formato adecuado para el análisis. En esta sección, nos enfocaremos en la identificación y manejo de datos faltantes.

Conceptos Clave

  1. Datos Faltantes: Datos que no están presentes en el conjunto de datos. Pueden ser valores nulos, vacíos o marcados con un valor especial (como -999).
  2. Imputación: Proceso de reemplazar datos faltantes con valores estimados.
  3. Eliminación: Proceso de eliminar filas o columnas que contienen datos faltantes.

Identificación de Datos Faltantes

Métodos Comunes para Identificar Datos Faltantes

  1. Visualización: Utilizar gráficos para detectar patrones de datos faltantes.
  2. Resumen Estadístico: Utilizar funciones estadísticas para contar valores nulos.

Ejemplo en Python

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Cargar un conjunto de datos de ejemplo
df = sns.load_dataset('titanic')

# Resumen estadístico para identificar datos faltantes
print(df.isnull().sum())

# Visualización de datos faltantes
sns.heatmap(df.isnull(), cbar=False, cmap='viridis')
plt.show()

En este ejemplo, utilizamos el conjunto de datos 'titanic' de Seaborn. El método isnull().sum() nos proporciona un resumen de la cantidad de valores nulos en cada columna. La visualización con heatmap nos permite ver gráficamente dónde se encuentran los datos faltantes.

Manejo de Datos Faltantes

Métodos Comunes para Manejar Datos Faltantes

  1. Eliminación de Filas/Columnas:

    • Eliminar Filas: Si una fila tiene datos faltantes, se elimina toda la fila.
    • Eliminar Columnas: Si una columna tiene muchos datos faltantes, se elimina toda la columna.
  2. Imputación de Datos:

    • Imputación Simple: Reemplazar datos faltantes con la media, mediana o moda.
    • Imputación Avanzada: Utilizar métodos más sofisticados como la imputación basada en modelos.

Ejemplo en Python

Eliminación de Filas/Columnas

# Eliminar filas con datos faltantes
df_dropped_rows = df.dropna()

# Eliminar columnas con datos faltantes
df_dropped_columns = df.dropna(axis=1)

print("Original DataFrame shape:", df.shape)
print("After dropping rows:", df_dropped_rows.shape)
print("After dropping columns:", df_dropped_columns.shape)

Imputación Simple

# Imputación con la media
df['age'].fillna(df['age'].mean(), inplace=True)

# Imputación con la mediana
df['age'].fillna(df['age'].median(), inplace=True)

# Imputación con la moda
df['embarked'].fillna(df['embarked'].mode()[0], inplace=True)

Ejercicio Práctico

Ejercicio: Utiliza el conjunto de datos 'titanic' para identificar y manejar los datos faltantes en las columnas 'age' y 'embarked'. Primero, elimina las filas con datos faltantes y luego realiza la imputación con la mediana para 'age' y la moda para 'embarked'.

Solución:

# Cargar el conjunto de datos
df = sns.load_dataset('titanic')

# Identificar datos faltantes
print(df.isnull().sum())

# Eliminar filas con datos faltantes
df_cleaned = df.dropna(subset=['age', 'embarked'])

# Imputación con la mediana para 'age'
df_cleaned['age'].fillna(df_cleaned['age'].median(), inplace=True)

# Imputación con la moda para 'embarked'
df_cleaned['embarked'].fillna(df_cleaned['embarked'].mode()[0], inplace=True)

# Verificar que no hay datos faltantes
print(df_cleaned.isnull().sum())

Conclusión

En esta sección, hemos aprendido a identificar y manejar datos faltantes, utilizando métodos de eliminación e imputación. Estos pasos son esenciales para preparar los datos para el análisis y garantizar la calidad de los resultados. En el próximo módulo, exploraremos técnicas de transformación y normalización de datos para mejorar aún más la calidad y utilidad de nuestros conjuntos de datos.

© Copyright 2024. Todos los derechos reservados