我有以下数据集:
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()
答案 0 :(得分:1)
直接使用cumsum
来感谢{{1}来shift
,而不是使用11
来填充ffill
之前的值:
NaN
现在:
df['expected'] = df['sales'].cumsum().shift(-11).ffill()
是:
print(df)