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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *