Dominando el análisis de series temporales: Cómo usar Pandas Resample
Updated on
El análisis de datos de series temporales se vuelve más sencillo con la poderosa biblioteca de Python - Pandas. Una característica destacada para el análisis de series temporales es la función resample(). Si eres nuevo en esto o quieres comprenderlo de manera más completa, este artículo proporciona una guía detallada sobre cómo usar Pandas Resample.
¿Quieres crear visualizaciones de datos rápidamente en Python?
PyGWalker es un proyecto de Python de código abierto que puede ayudar a acelerar el flujo de trabajo de análisis y visualización de datos directamente dentro de entornos basados en Jupyter Notebook.
PyGWalker (opens in a new tab) convierte tu DataFrame de Pandas (o DataFrame de Polars) en una interfaz de usuario visual donde puedes arrastrar y soltar variables para crear gráficos fácilmente. Simplemente usa el siguiente código:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Puedes ejecutar PyGWalker ahora mismo con estas notebooks en línea:
¡Y no olvides darnos una ⭐️ en GitHub!
El poder de Pandas Resample
Al igual que puedes agrupar datos basados en ciertas categorías con groupby()
, resample()
permite agrupar datos en diferentes intervalos de tiempo. Esta función única mejora la transformación y limpieza de datos para datos de series temporales. Pero, para desbloquear todo su potencial, es esencial comprender sus parámetros clave y los conceptos subyacentes.
Conceptos clave en el Remuestreo
El remuestreo se puede categorizar en dos tipos principales:
- Remuestreo ascendente: Esto implica aumentar la frecuencia de los datos, por ejemplo, convertir datos anuales en datos mensuales. Ahora habrá más puntos de datos que representarán la serie temporal.
- Remuestreo descendente: Esto es lo contrario del remuestreo ascendente, donde se disminuye la frecuencia de los datos, por ejemplo, convertir datos mensuales en datos anuales.
Comprendiendo los principales parámetros de Resample
Ahora profundicemos en los parámetros esenciales que necesitas dominar para usar resample()
de manera efectiva.
El parámetro 'rule'
La regla es un parámetro esencial que especifica la frecuencia a la que deseas que se remuestren tus datos. ¿Quieres agrupar tu serie temporal en intervalos de 5 minutos o de 30 minutos? El parámetro de regla tiene lo que buscas.
# Remuestreo de datos en intervalos de 5 minutos
df.resample(rule='5T')
El parámetro 'axis'
El parámetro de eje (por defecto=0) dicta si deseas remuestrear a lo largo de filas o columnas. En la mayoría de los datos de series temporales, encontrarás que el uso común es axis=0 (remuestreo a lo largo de filas).
# Remuestreo de datos a lo largo de columnas
df.resample(rule='5T', axis=1)
El parámetro 'closed'
El parámetro de cerrado controla qué lado del intervalo está cerrado, es decir, no incluirá datos remuestreados de ese intervalo. Es particularmente útil al decidir si incluir datos en el borde de tu muestra de tiempo.
# Remuestreo de datos con el lado derecho del intervalo cerrado
df.resample(rule='5T', closed='right')
El parámetro 'label'
Este parámetro ayuda a etiquetar los nuevos contenedores creados después del remuestreo. Un contenedor tiene dos lados, el inicio y el final. Este parámetro determina cómo se etiquetarán los nuevos contenedores.
# Remuestreo de datos con etiquetas en el lado derecho
df.resample(rule='5T', label='right')
El parámetro 'convention'
El parámetro de convención se utiliza principalmente al remuestrear hacia arriba y decide dónde colocar los puntos de datos.
# Remuestreo de datos con convención 'start'
df.resample(rule='5T', convention='start')
Hay más parámetros para explorar, pero estos forman la base para utilizar de manera efectiva la función de resample.
Poniéndolo todo junto: Pandas Resample en acción
Para consolidar tu comprensión, trabajemos en un ejemplo detallado. Imagina que tienes datos de series temporales con un punto de datos registrado cada 5 minutos desde las 10 a.m. hasta las 11 a.m. Ahora, queremos remuestrear estos datos en intervalos de 15 minutos.
import pandas as pd
# Creación de un rango de fechas
date_range = pd.date_range(start='10:00', end='11:00', freq='5T')
# Creación de un DataFrame aleatorio
df = pd.DataFrame(date_range, columns=['date'])
df['data'] = np.random.randint(0,100,size=(len(date_range)))
# Configuración de la columna de fecha como índice
df.set_index('date', inplace=True)
# Remuestreo de los datos en intervalos de 15 minutos
resampled_data = df.resample(rule='15T').mean()
En este ejemplo, primero creamos un DataFrame con un punto de datos cada 5 minutos desde las 10 am hasta las 11 am. Luego, utilizando resample()
, muestreamos los datos en intervalos de 15 minutos, tomando la media de los puntos de datos que caen en cada intervalo.
Dominar el arte del muestreo puede aportar mejoras significativas a tus habilidades de análisis de series de tiempo. No dudes en experimentar con diferentes parámetros y técnicas para comprender mejor su impacto.