Jak grupować według kwartałów w pandas dataframe (z przykładem)
Aby grupować wiersze według ćwiartek w ramce DataFrame pandy, możesz użyć następującej podstawowej składni:
#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 ()
Ta konkretna formuła grupuje wiersze według kwartałów w kolumnie daty i oblicza sumę kolumny wartości w DataFrame.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Jak grupować według kwartałów w Pandach
Załóżmy, że mamy następującą ramkę danych pandy, która pokazuje sprzedaż dokonaną przez firmę w różnych datach:
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
Powiązane: Jak utworzyć zakres dat w Pandach
Do obliczenia sumy sprzedaży pogrupowanej według kwartałów można zastosować następującą składnię:
#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
Oto jak zinterpretować wynik:
- W pierwszym kwartale dokonano łącznie 24 sprzedaży.
- W drugim kwartale dokonano łącznie 17 sprzedaży.
- W trzecim kwartale dokonano łącznie 16 sprzedaży.
- W czwartym kwartale dokonano łącznie 25 sprzedaży.
Możemy użyć podobnej składni do obliczenia innej metryki, pogrupowanej według kwartałów.
Zamiast tego moglibyśmy na przykład obliczyć maksymalną wartość sprzedaży, pogrupowaną według kwartałów:
#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
Oto jak zinterpretować wynik:
- Szczytowa sprzedaż w poszczególnych miesiącach w pierwszym kwartale wyniosła 10 sztuk .
- Szczytowa sprzedaż w danym miesiącu w drugim kwartale wyniosła 8 .
- Szczytowa sprzedaż w danym miesiącu w trzecim kwartale wyniosła 8 .
- Szczytowa sprzedaż w pojedynczym miesiącu w czwartym kwartale wyniosła 14 sztuk .
Uwaga : pełną dokumentację operacji grupowania w pandach znajdziesz tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:
Jak grupować według miesięcy w Pandas DataFrame
Jak grupować według tygodni w Pandas DataFrame
Pandy: Jak korzystać z Groupby i liczyć warunkowo