熊猫组日期到季度和总和销售列

时间:2017-06-22 03:59:58

标签: python pandas group-by sum

我正在学习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 个答案:

答案 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