我正在学习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
但是上面发生的事情是我得到了所有列的总和,并通过添加商店和部门号码来获得以下输出:
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
如果能得到解决方案,我将不胜感激。
干杯,
答案 0 :(得分:3)
这就是你想要的吗?
将日期转换为月/年格式,然后对销售进行分组和总结。
(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