Agrupar por mes en Pandas

Preet Sanghavi 21 junio 2023
  1. Agrupar marco de datos por mes en pandas
  2. Usa la función groupby() en Pandas
Agrupar por mes en Pandas

Este tutorial utiliza Pandas para organizar marcos de datos por fecha, específicamente por mes. Comencemos importando las bibliotecas requeridas.

Agrupar marco de datos por mes en pandas

Importar bibliotecas pertinentes:

import pandas as pd

Necesitamos crear un marco de datos que contenga fechas para organizarlas en el orden del mes. En nuestro caso, tomaremos tres fechas para trabajar.

Crearemos el marco de datos de muestra usando el código a continuación.

df = pd.DataFrame(
    {
        "Date": [
            pd.Timestamp("2000-11-02"),
            pd.Timestamp("2000-01-02"),
            pd.Timestamp("2000-01-09"),
        ],
        "ID": [1, 2, 3],
        "Price": [140, 120, 230],
    }
)

Veamos nuestro marco de datos de muestra que contiene fechas.

print(df)
        Date  ID  Price
0 2000-11-02   1    140
1 2000-01-02   2    120
2 2000-01-09   3    230

Después de crear nuestro marco de datos, trabajemos en organizarlos en orden de mes. Usaremos la función groupby() para trabajar en todo el marco de datos.

Usa la función groupby() en Pandas

Podemos especificar una directiva groupby para un objeto usando Pandas GroupBy. Esta instrucción indicada elegirá una columna utilizando el argumento “clave” de la función agrupador, los parámetros de nivel y/o eje si se proporcionan, y el nivel de índice de la columna o el objeto de destino.

Usando el código a continuación, realicemos la operación agrupar en nuestro marco de datos de muestra.

df1 = df.groupby(pd.Grouper(key="Date", axis=0, freq="M")).sum()

Ahora que hemos agrupado nuestro marco de datos, veamos el marco de datos actualizado.

print(df1)
            ID  Price
Date
2000-01-31   5    350
2000-02-29   0      0
2000-03-31   0      0
2000-04-30   0      0
2000-05-31   0      0
2000-06-30   0      0
2000-07-31   0      0
2000-08-31   0      0
2000-09-30   0      0
2000-10-31   0      0
2000-11-30   1    140

La columna Fecha agrupa el marco de datos del ejemplo anterior. Debido a que especificamos freq = 'M', que significa mes, los datos se agrupan por mes hasta la última fecha de cada mes y se presenta la suma de la columna precio.

Debido a que no proporcionamos un valor para todos los meses, el método groupby mostró datos para todos ellos mientras asignaba un valor de 0 a los demás.

Por lo tanto, hemos agrupado con éxito nuestro marco de datos por mes en Pandas utilizando el enfoque anterior.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Artículo relacionado - Pandas GroupBy