Cómo realizar la agregación de datos a través de datos de series temporales con Pandas
Aprendamos cómo realizar la agregación de series temporales con Pandas.
Aprendamos cómo realizar la agregación de datos de series temporales en Pandas.
Preparación
Necesitaríamos tener instalados los paquetes Pandas y Numpy, para poder instalarlos usando el siguiente código:
pip install pandas numpy
Con los paquetes instalados, pasemos al artículo.
Agregación de datos de series temporales
Las series de tiempo son datos únicos, ya que se recopilan secuencialmente y se almacenan en determinados momentos en el tiempo. Este tipo de conjunto de datos se utiliza a menudo para representar la progresión, como el precio de las acciones, los datos de ventas mensuales y muchos más. Lo importante es que los datos estén ordenados cronológicamente.
La agregación es una metodología para resumir o combinar varios conjuntos de datos para producir un único conjunto de valores. Generalmente se utiliza para comprender conjuntos de datos más grandes proporcionando información concisa.
Como las series de tiempo son un conjunto de datos, podemos realizar una agregación de series de tiempo. Probémoslo con un ejemplo de conjunto de datos.
import pandas as pd
import numpy as np
np.random.seed(42)
date_rng = pd.date_range(start='2021-01-01', end='2023-12-31', freq='D')
df = pd.DataFrame({
'Date': date_rng,
'Sales': np.random.randint(100, 300, size=len(date_rng)),
'Profit': np.random.randint(1000, 5000, size=len(date_rng)),
'Rating': np.random.uniform(1, 10, size=len(date_rng))
})
Con este conjunto de datos de ejemplo, intentemos realizar una agregación de series de tiempo. La forma de agregación en Pandas es mediante el método de remuestreo o groupby.
Comencemos con el remuestreo. Este método utiliza series de tiempo para agregar los datos durante un período determinado. Necesitamos establecer la fecha como índice para utilizar el remuestreo.
df.set_index('Date', inplace=True)
Luego, podemos realizar la agregación de series de tiempo con un remuestreo. Por ejemplo, utilizo un período de agregación anual.
df.resample('Y').mean()
Producción :
Sales Profit Rating
Date
2021-12-31 203.410959 3105.854795 5.507386
2022-12-31 203.153425 2962.819178 5.366746
2023-12-31 194.657534 2989.123288 5.503049
Puede cambiar las frecuencias de remuestreo, como por ejemplo:
D (diario)
- S (semanal)
- M (mensual)
- Q (trimestral)
- A (anual)
Alternativamente, podemos usar groupby para la agregación de series temporales.
df.groupby(df.index.year).mean()
Producción :
Sales Profit Rating
Date
2021 203.410959 3105.854795 5.507386
2022 203.153425 2962.819178 5.366746
2023 194.657534 2989.123288 5.503049
Podemos asignar diferentes métodos de agregación a las diferentes columnas.
df.resample('Y').agg({
'Sales': 'sum',
'Profit': 'mean',
'Rating': 'max'
})
Producción :
Sales Profit Rating
Date
2021-12-31 74245 3105.854795 9.959324
2022-12-31 74151 2962.819178 9.931739
2023-12-31 71050 2989.123288 9.973703
Eso es todo por la agregación de series temporales. Dominar la agregación de series temporales le proporcionaría importantes habilidades de análisis de datos.
Cornellius Yudha Wijaya es subdirector de ciencia de datos y redactor de datos. Mientras trabaja a tiempo completo en Allianz Indonesia, le encanta compartir consejos sobre datos y Python a través de las redes sociales y los medios escritos. Cornellius escribe sobre una variedad de temas de inteligencia artificial y aprendizaje automático.