Come raggruppare per trimestre in pandas dataframe (con esempio)


È possibile utilizzare la seguente sintassi di base per raggruppare le righe per trimestre in un DataFrame panda:

 #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 ()

Questa particolare formula raggruppa le righe per trimestre nella colonna della data e calcola la somma della colonna dei valori nel DataFrame.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: come raggruppare per trimestre in Pandas

Diciamo che abbiamo il seguente DataFrame panda che mostra le vendite effettuate da un’azienda in date diverse:

 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

Correlato: Come creare un intervallo di date in Pandas

Per calcolare la somma delle vendite raggruppate per trimestre è possibile utilizzare la seguente sintassi:

 #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

Ecco come interpretare il risultato:

  • Nel primo trimestre sono state effettuate complessivamente 24 vendite.
  • Nel corso del secondo trimestre sono state effettuate complessivamente 17 vendite.
  • Nel corso del terzo trimestre sono state effettuate complessivamente 16 vendite.
  • Nel corso del quarto trimestre sono state effettuate complessivamente 25 vendite.

Possiamo utilizzare una sintassi simile per calcolare un’altra metrica, raggruppata per trimestre.

Ad esempio potremmo invece calcolare il valore massimo delle vendite, raggruppate per 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

Ecco come interpretare il risultato:

  • Le vendite massime in un singolo mese durante il primo trimestre sono state pari a 10 .
  • Le vendite massime in un singolo mese durante il secondo trimestre sono state 8 .
  • Le vendite massime in un singolo mese durante il terzo trimestre sono state pari a 8 .
  • Il picco delle vendite in un singolo mese durante il quarto trimestre è stato di 14 unità .

Nota : puoi trovare la documentazione completa dell’operazione groupby in panda qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come raggruppare per mese in Pandas DataFrame
Come raggruppare per settimana in Pandas DataFrame
Panda: come utilizzare Groupby e contare in modo condizionale

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *