Groeperen op kwartaal in pandas dataframe (met voorbeeld)
U kunt de volgende basissyntaxis gebruiken om rijen per kwartaal te groeperen in een pandas DataFrame:
#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 ()
Deze specifieke formule groepeert de rijen per kwartaal in de datumkolom en berekent de som van de kolom met waarden in het DataFrame.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Groeperen op kwartaal in Panda’s
Laten we zeggen dat we de volgende panda’s DataFrame hebben die de verkopen van een bedrijf op verschillende data weergeven:
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
Gerelateerd: Hoe u een datumbereik in Panda’s kunt maken
De volgende syntaxis kan worden gebruikt om de som van de verkopen gegroepeerd per kwartaal te berekenen:
#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
Zo interpreteert u het resultaat:
- In het eerste kwartaal werden in totaal 24 verkopen gerealiseerd.
- In het tweede kwartaal werden in totaal 17 verkopen gerealiseerd.
- In het derde kwartaal werden in totaal 16 verkopen gerealiseerd.
- In het vierde kwartaal werden in totaal 25 verkopen gerealiseerd.
We kunnen een vergelijkbare syntaxis gebruiken om een andere metriek te berekenen, gegroepeerd op kwartaal.
We zouden bijvoorbeeld in plaats daarvan de maximale verkoopwaarde kunnen berekenen, gegroepeerd per kwartaal:
#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
Zo interpreteert u het resultaat:
- De piekomzet in een afzonderlijke maand tijdens het eerste kwartaal bedroeg 10 .
- De piekomzet in een afzonderlijke maand tijdens het tweede kwartaal bedroeg 8 .
- De piekomzet in een afzonderlijke maand tijdens het derde kwartaal bedroeg 8 .
- De piekverkopen in een afzonderlijke maand tijdens het vierde kwartaal bedroegen 14 .
Opmerking : U kunt hier de volledige documentatie van de groupby- bewerking in panda’s vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Groeperen op maand in Pandas DataFrame
Groeperen op week in Pandas DataFrame
Panda’s: Groupby gebruiken en voorwaardelijk tellen