Como agrupar por trimestre no pandas dataframe (com exemplo)


Você pode usar a seguinte sintaxe básica para agrupar linhas por trimestre em um DataFrame do pandas:

 #convert date column to datetime
df[' date '] = pd. to_datetime (df[' date '])

#calculate sum of values, grouped by quarter
df. groupby (df[' date ']. dt . to_period (' Q '))[' values ']. sum ()

Esta fórmula específica agrupa as linhas por trimestre na coluna de data e calcula a soma da coluna de valores no DataFrame.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: como agrupar por trimestre no Pandas

Digamos que temos o seguinte DataFrame do pandas que mostra as vendas realizadas por uma empresa em datas diferentes:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start='1/1/2022', freq='M', periods= 12 ),
                   ' sales ': [6, 8, 10, 5, 4, 8, 8, 3, 5, 14, 8, 3]})

#view DataFrame
print (df)

         dirty date
0 2022-01-31 6
1 2022-02-28 8
2 2022-03-31 10
3 2022-04-30 5
4 2022-05-31 4
5 2022-06-30 8
6 2022-07-31 8
7 2022-08-31 3
8 2022-09-30 5
9 2022-10-31 14
10 2022-11-30 8
11 2022-12-31 3

Relacionado: Como criar um intervalo de datas no Pandas

A seguinte sintaxe pode ser usada para calcular a soma das vendas agrupadas por trimestre:

 #convert date column to datetime and subtract one week
df[' date '] = pd. to_datetime (df[' date '])

#calculate sum of sales, grouped by quarter
df. groupby (df[' date ']. dt . to_period (' Q '))[' sales ']. sum ()

date
2022Q1 24
2022Q2 17
2022Q3 16
2022Q4 25
Freq: Q-DEC, Name: sales, dtype: int64

Veja como interpretar o resultado:

  • Um total de 24 vendas foram realizadas durante o primeiro trimestre.
  • Um total de 17 vendas foram realizadas durante o segundo trimestre.
  • Um total de 16 vendas foram realizadas durante o terceiro trimestre.
  • Um total de 25 vendas foram realizadas durante o quarto trimestre.

Podemos usar sintaxe semelhante para calcular outra métrica, agrupada por trimestre.

Por exemplo, poderíamos calcular o valor máximo de vendas, agrupado por trimestre:

 #convert date column to datetime
df[' date '] = pd. to_datetime (df[' date '])

#calculate max of sales, grouped by quarter
df. groupby (df[' date ']. dt . to_period (' Q '))[' sales ']. max ()

date
2022Q1 10
2022Q2 8
2022Q3 8
2022Q4 14
Freq: Q-DEC, Name: sales, dtype: int64

Veja como interpretar o resultado:

  • O pico de vendas em um mês individual durante o primeiro trimestre foi de 10 .
  • O pico de vendas em um mês individual durante o segundo trimestre foi de 8 .
  • O pico de vendas em um mês individual durante o terceiro trimestre foi de 8 .
  • O pico de vendas em um único mês durante o quarto trimestre foi de 14 .

Nota : Você pode encontrar a documentação completa da operação groupby no pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como agrupar por mês no Pandas DataFrame
Como agrupar por semana no Pandas DataFrame
Pandas: como usar Groupby e contar condicionalmente

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *