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