Як групувати за кварталами в pandas dataframe (з прикладом)


Ви можете використовувати наступний базовий синтаксис для групування рядків за кварталами у 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 ()

Ця конкретна формула групує рядки по кварталах у стовпці дати та обчислює суму стовпця значень у DataFrame.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: як групувати за кварталами в Pandas

Скажімо, у нас є такий пандас DataFrame, який показує продажі, здійснені компанією в різні дати:

 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

Пов’язане: Як створити діапазон дат у Pandas

Щоб обчислити суму продажів, згрупованих за кварталами, можна використати такий синтаксис:

 #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

Ось як інтерпретувати результат:

  • Всього за перший квартал було здійснено 24 продажу.
  • Всього за другий квартал було здійснено 17 продажів.
  • Всього за третій квартал було здійснено 16 продажів.
  • Всього за четвертий квартал було здійснено 25 продажів.

Ми можемо використовувати аналогічний синтаксис для обчислення іншого показника, згрупованого за кварталами.

Наприклад, замість цього ми могли б обчислити максимальну вартість продажів, згруповану за кварталами:

 #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

Ось як інтерпретувати результат:

  • Пік продажів за окремий місяць протягом першого кварталу становив 10 .
  • Пік продажів за окремий місяць протягом другого кварталу становив 8 .
  • Пік продажів за окремий місяць протягом третього кварталу становив 8 .
  • Пік продажів за окремий місяць протягом четвертого кварталу становив 14 .

Примітка : ви можете знайти повну документацію щодо операції groupby в pandas тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

Як згрупувати за місяцями в Pandas DataFrame
Як згрупувати за тижнем у Pandas DataFrame
Pandas: як використовувати Groupby та умовний підрахунок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *