pandas group 日期到季度和总销售额列

Posted

技术标签:

【中文标题】pandas group 日期到季度和总销售额列【英文标题】:pandas group dates to quarterly and sum sales column 【发布时间】:2017-11-25 04:07:52 【问题描述】:

我正在学习 python,目前我正在处理一些销售数据。数据为 csv 格式,显示每周销售额。 我在下面的列中有一些示例数据,如下所示:

store#  dept#    dates      weeklysales
   1      1    01/01/2005      50000
   1      1    08/01/2005      120000
   1      1    15/01/2005      75000
   1      1    22/01/2005      25000
   1      1    29/01/2005      18000 
   1      2    01/01/2005      15000
   1      2    08/01/2005      12000
   1      2    15/01/2005      75000
   1      2    22/01/2005      35000
   1      2    29/01/2005      28000
   1      1    01/02/2005      50000
   1      1    08/02/2005      120000
   1      1    15/02/2005      75000
   1      1    22/03/2005      25000
   1      1    29/03/2005      18000  

我想将每个部门的每周销售额添加到每月基础上,并希望显示记录。

我尝试通过以下链接在 Pandas 中使用 groupby 函数:

how to convert monthly data to quarterly in pandas

Pandas group by and sum two columns

Pandas group-by and sum

但是上面发生了什么,我得到了所有列的总和,并通过添加商店和部门号得到以下输出:

store#  dept#    dates      weeklysales
   4      3     01/2005        28800
   4      1     01/2005        165000
   4      3     02/2005        245000
   4      3     03/2005        43000

我不想添加商店和部门编号,但只想按每个月添加每周销售数字,并希望显示如下:

store#  dept#    dates      weeklysales
   1      1     01/2005        28800
   1      2     01/2005        165000
   1      1     02/2005        245000
   1      1     03/2005        43000

如果我能找到解决方案将不胜感激。

干杯,

【问题讨论】:

【参考方案1】:

这就是你所追求的吗?

将日期转换为月/年格式,然后对销售额进行分组和汇总。

(df.assign(dates=df.dates.dt.strftime('%m/%Y'))
    .groupby(['store#','dept#','dates'])
    .sum()
    .reset_index()
)
Out[243]: 
   store#  dept#    dates  weeklysales
0       1      1  01/2005       288000
1       1      1  02/2005       245000
2       1      1  03/2005        43000
3       1      2  01/2005       165000

【讨论】:

非常感谢艾伦。这就是我想要实现的目标

以上是关于pandas group 日期到季度和总销售额列的主要内容,如果未能解决你的问题,请参考以下文章

下采样到季度级别并在 Pandas 中获取季度结束日期值

pandas基于日期信息(time or date)生成季度信息(quarter)实战:pandas基于日期信息列生成季度信息列dt.quarter生成季度信息dt.to_period生成季度信息

pandas通过DatetimeProperties对象获取日期对象是否是所在季度的第一天(is quarter start)筛选dataframe数据中日期对象是所在季度第一天的数据行

pandas通过DatetimeProperties对象获取日期对象是否是所在季度的最后一天(is quarter end)筛选dataframe数据中日期对象是所在季度最后一天的数据行

Python/Pandas:查找将假期考虑在内的日期时间的自定义业务季度结束

pandas通过DatetimeProperties对象获取日期对象是否是所在季度的第一天(is quarter start)