Ejercicio 15: Análisis de Datos Temporales con Pandas

Este ejercicio tiene como objetivo que los estudiantes trabajen con manipulación de datos temporales en Pandas, visualización de series temporales y transformaciones avanzadas en datos con fechas y tiempos. Se trabajará con un dataset real de registros de recetas en el tiempo para aprender cómo manejar fechas, agrupar datos y visualizar tendencias.

Objetivos

  • Manipular datos temporales utilizando Pandas.
  • Visualizar series temporales para identificar tendencias.
  • Aplicar transformaciones avanzadas en datos con fechas y tiempos.

Entrada de Datos

  • id: Identificador único de la receta.
  • name: Nombre de la receta.
  • ingredients: Lista de ingredientes como texto.
  • date: Fecha de publicación de la receta.
  • category: Categoría de la receta (postres, pastas, carnes, etc.).

Parte A: Carga y Exploración de Datos

Tareas

  1. Cargar el dataset en un DataFrame de Pandas y explorar su contenido.
  2. Convertir la columna date a formato datetime64 para facilitar su manipulación.
  3. Extraer año, mes, día de la semana y día del año en nuevas columnas para análisis posterior.
import pandas as pd

# Cargar el dataset
# TODO: Implementar la carga del dataset
# df = pd.read_csv('ruta_al_dataset.csv')

# Convertir la columna 'date' a formato datetime
# TODO: Implementar la conversión de la columna 'date'

# Extraer año, mes, día de la semana y día del año
# TODO: Implementar la extracción de componentes de fecha

Parte B: Análisis y Agrupación Temporal

Tareas

  1. Agregación por Año y Mes

    • Contar la cantidad de recetas publicadas por año y mes.
    • Visualizar la cantidad de recetas publicadas a lo largo del tiempo con un gráfico de líneas.
  2. Distribución de Publicaciones por Día de la Semana

    • Crear un gráfico de barras que muestre cuántas recetas se publicaron cada día de la semana.
  3. Análisis de Temporadas (Estaciones del Año)

    • Identificar patrones estacionales en la publicación de recetas.
    • Crear un gráfico que muestre la distribución de publicaciones por estación del año.
  4. Análisis de Ventanas Móviles

    • Aplicar una ventana móvil de 30 días para suavizar la tendencia de publicaciones.
    • Comparar la serie original con la suavizada en un gráfico de líneas.
import matplotlib.pyplot as plt
import seaborn as sns

# TODO: Implementar las tareas de análisis y visualización

Parte C: Visualización Avanzada de Series Temporales

Tareas

  1. Tendencias Anuales y Mensuales

    • Graficar el número de recetas publicadas por año y mes usando Matplotlib o Seaborn.
    • Usar hue para diferenciar por categoría de receta.
  2. Publicaciones por Día de la Semana

    • Crear un gráfico de barras con Seaborn para mostrar qué días de la semana se publican más recetas.
    • Comparar si ciertos tipos de recetas tienen patrones específicos de publicación.
  3. Análisis de Temporadas

    • Graficar las publicaciones por mes y resaltar las estaciones del año con colores.
    • Identificar tendencias de recetas populares en invierno, verano, otoño y primavera.
  4. Resampling y Media Móvil

    • Aplicar un resample('M') para visualizar la tendencia mensual.
    • Aplicar .rolling(30).mean() para suavizar los datos y comparar con la serie original.
# TODO: Implementar las visualizaciones avanzadas

Entrega Esperada

  • Código en Python bien estructurado utilizando Pandas, Matplotlib y Seaborn.
  • Gráficos claros y correctamente etiquetados.
  • Análisis de los resultados con reflexiones sobre las tendencias temporales y estacionales.