这最好通过一个例子来解释。
我有以下数据框(每一行都可以被认为是一个事务):
DATE AMOUNT
2017-01-29 10
2017-01-30 20
2017-01-31 30
2017-02-01 40
2017-02-02 50
2017-02-03 60
我想计算 2 天的滚动总和,但仅适用于 2 月份的行。
我目前拥有的代码片段:
df.set_index('DATE',inplace=True)
res=df.rolling('2d')['AMOUNT'].sum()
这使:
AMOUNT
2017-01-29 10
2017-01-30 30
2017-01-31 50
2017-02-01 70
2017-02-02 90
2017-02-03 110
但我真的只需要最后3行的输出,前3行的操作是不必要的。当数据帧很大时,这会产生巨大的时间复杂度。如何仅计算最后 3 行的滚动总和(除了计算所有行的滚动总和,然后执行行过滤操作)?
*我也无法预先过滤数据框,因为 1 月份不会有“回溯”期来获得正确的滚动总和值。