3 · Fechas y resampling
El DatetimeIndex de pandas es el caballo de batalla de las series temporales: parsea fechas, cambia la frecuencia con resample y llena huecos — la fontanería de la que depende todo pronóstico.
Un DatetimeIndex desbloquea operaciones conscientes del tiempo: resample() cambia la frecuencia (downsample agregando, upsample rellenando), y una frecuencia fija y sin huecos es precondición de todo modelo clásico.
Sin esto:
Marcas de tiempo irregulares y fechas faltantes rompen en silencio a ARIMA, seasonal_decompose y las features de retardo; poner el índice en una frecuencia limpia y regular es el paso cero.
Antes de modelar nada, el eje temporal debe estar limpio. pandas hace de esto su especialidad vía el DatetimeIndex.
- Parseo.
pd.to_datetimeconvierte strings en marcas de tiempo reales que puedes comparar, ordenar y rebanar (ts["2025-03"]selecciona todo marzo). - Frecuencia. Una serie debe estar en una frecuencia regular — diaria
"D", día hábil"B", inicio de mes"MS", horaria"H". Los modelos clásicos asumen puntos equiespaciados sin huecos. - Resampling.
resample()es un groupby para el tiempo. Downsample (p. ej. diario → semanal) agregando:ts.resample("W").mean(). Upsample (p. ej. diario → horario) introduciendo nuevas marcas y rellenándolas (.ffill(),.interpolate()).
El resampling es cómo ajustas una serie al horizonte que te importa (pronosticar demanda semanal desde data diaria), suavizas ruido o alineas dos series al mismo reloj. Abajo generamos data diaria ruidosa, hacemos downsample a semanal y mostramos cómo rellenar un hueco — la fontanería cotidiana del trabajo con series temporales.
Python (in browser)
Superpoderes del DatetimeIndex: rebanado por string, resample() para cambiar frecuencia y asfreq()+interpolate() para obtener la serie limpia y sin huecos que requieren los modelos.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Tienes ventas diarias pero necesitas un pronóstico de demanda semanal. ¿Cuál es la operación correcta de pandas para obtener totales semanales?
- Un DatetimeIndex habilita rebanado por tiempo, resampling y operaciones de frecuencia — la base de las series temporales en pandas.
- resample() es groupby-para-tiempo: downsample agregando (.mean/.sum), upsample rellenando (.ffill/.interpolate).
- Los modelos clásicos necesitan una frecuencia regular y sin huecos — usa asfreq() + un método de relleno para lograrlo primero.
Toda pipeline de forecasting empieza parseando fechas, fijando la frecuencia y resampleando al horizonte objetivo antes de que un modelo vea la data.
Si lo quitas: Marcas de tiempo irregulares o con huecos corrompen en silencio seasonal_decompose, ARIMA y las features de retardo — basura entra, basura sale.