Búsqueda de sitios web

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.