Как группировать по кварталам в pandas dataframe (с примером)


Вы можете использовать следующий базовый синтаксис для группировки строк по кварталам в DataFrame pandas:

 #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 pandas, который показывает продажи компании в разные даты:

 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 и считать по условию

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *