Як групувати за кварталами в 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 та умовний підрахунок