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基于日期信息(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)