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.