【发布时间】:2019-01-21 09:47:16
【问题描述】:
我有以下数据集:
date sales
201201 5
201202 5
201203 5
201204 5
201205 5
201206 5
201207 5
201208 5
201209 5
201210 5
201211 5
201212 5
201301 100
201302 100
我想计算从开始到实际日期+12个月
的累计销售额所以这里:
date sales expected
201201 5 60
201202 5 160
201203 5 260
201204 5 260
201205 5 260
201206 5 260
201207 5 260
201208 5 260
201209 5 260
201210 5 260
201211 5 260
201212 5 260
201301 100 260
201302 100 260
根据这个问题How to compute cumulative sum of previous N rows in pandas?我试过了:
df['sales'].rolling(window=12).sum()
但是我正在寻找更像这样的东西:
df['sales'].rolling(window=['unlimited preceding, 11 following']).sum()
【问题讨论】:
-
对不起,问这个 - 为什么第二个值是 160 而第三个值变成 260?其背后的逻辑是什么?
-
第一个期望值是 sum(sales 从开始到 201301) = 60。第二个期望值是 sum(sales 从开始到 201302) = 160,因为 201301 的销售额是 100。然后第三个值是 260,因为我添加了 201302 等的 100 个销售额