Python-如何计算给定日期列最后2天的销售额总和



熊猫数据帧df_sales的填充如下所示。对于每个ID,都有多个日期,全部分组&按照问题之前显示的顺序进行排序。

ID      Date            Sales
a       01/01/2020      20
a       02/01/2020      65
a       03/01/2020      31
b       01/01/2020      25
b       02/01/2020      15
b       03/01/2020      42
c       01/01/2020      31
c       02/01/2020      50
c       03/01/2020      25

现在,我想在同一数据帧中看到过去两天的销售总额,如下所示。

ID      Date            Sales   Sales in last 2 days
a       01/01/2020      20       20
a       02/01/2020      65       85
a       03/01/2020      31       96
b       01/01/2020      25       25
b       02/01/2020      15       40
b       03/01/2020      42       57
c       01/01/2020      31       31
c       02/01/2020      50       81
c       03/01/2020      25       75

你能建议一下这怎么可能吗?非常感谢。

我尝试了分组和聚合,但我无法单独在最后两天进行迭代,尤其是在没有前一个日期值的情况下。

希望我能正确理解,尝试使用Shift将前一行的值相加,并创建一个名为"最近2天的销售额"的新列

import pandas as pd
id_col = ['a','a','a','b','b','b','c','c','c']
date_rng = ['2020-01-01','2020-01-02','2020-01-03','2020-01-01','2020-01-02','2020-01-03',
'2020-01-01','2020-01-02','2020-01-03']
sales = [20,65,31,25,15,29,23,5,65]
df = pd.DataFrame({'ID':id_col, 'Date':date_rng, 'Sales':sales})
id_grp = df.groupby(['ID'])
df_list = []
for df_grp in id_grp:
df_grp[1]['Sales in last 2 days'] = df_grp[1]['Sales'] + df_grp[1]['Sales'].shift().fillna(0)
df_list.append(df_grp[1])
print(pd.concat(df_list))

相关内容

  • 没有找到相关文章

最新更新