如何在 pandas dataframe 中按天分组(举例)


您可以使用以下基本语法在 pandas DataFrame 中按天对行进行分组:

 df. groupby (df. your_date_column . dt . day )[' values_column ']. sum ()

这个特定的公式按日期对your_date_column中的行进行分组,并计算 DataFrame 中values_column的值的总和。

请注意, dt.day()函数从 pandas 的日期列中提取日期。

以下示例展示了如何在实践中使用此语法。

示例:如何在 pandas 中按天分组

假设我们有以下 pandas DataFrame,它显示了一家公司在不同日期的销售额:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start=' 1/1/2020 ', freq=' 8h ', periods= 10 ),
                   ' sales ': [6, 8, 9, 11, 13, 8, 8, 15, 22, 9],
                   ' returns ': [0, 3, 2, 2, 1, 3, 2, 4, 1, 5]})

#view DataFrame
print (df)

                 date sales returns
0 2020-01-01 00:00:00 6 0
1 2020-01-01 08:00:00 8 3
2 2020-01-01 16:00:00 9 2
3 2020-01-02 00:00:00 11 2
4 2020-01-02 08:00:00 13 1
5 2020-01-02 16:00:00 8 3
6 2020-01-03 00:00:00 8 2
7 2020-01-03 08:00:00 15 4
8 2020-01-03 16:00:00 22 1
9 2020-01-04 00:00:00 9 5

相关:如何在 Pandas 中创建日期范围

我们可以使用以下语法来计算按天分组的销售额总和:

 #calculate sum of sales grouped by day
df. groupby (df. date . dt . day )[' sales ']. sum ()

date
1 23
2 32
3 45
4 9
Name: sales, dtype: int64

以下是如何解释结果:

  • 1 月 1 日的总销量为23
  • 1 月 2 日的总销量为32
  • 1 月 3 日的总销量为45 辆
  • 1 月 4 日的总销量为9 .

我们可以使用类似的语法来计算按月分组的最大销售额:

 #calculate max of sales grouped by day
df. groupby (df. date . dt . day )[' sales ']. max ()

date
1 9
2 13
3 22
4 9
Name: sales, dtype: int64

我们可以使用类似的语法来计算我们想要按日期列的每日值分组的任何值。

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

其他资源

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

如何在 pandas 中按周分组
如何在 Pandas 中按月分组
如何在 Pandas 中按季度分组

添加评论

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