Как сгруппировать по кварталам в 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

Предположим, у нас есть следующий кадр данных pandas, который показывает продажи, сделанные какой-либо компанией в разные даты:

import pandas as pd

#create DataFrame
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)

 date sales
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 и Count с условием

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.