如何在 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 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 .

注意:您可以在此处找到 pandas 中groupby操作的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 Pandas DataFrame 中按月分组
如何在 Pandas DataFrame 中按周分组
Pandas:如何使用 Groupby 和有条件计数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注