2017-05-27 56 views
2

使用熊貓,什麼是計算比前n個元素滾動cumsum,例如計算尾隨3天銷售最簡單的方法:熊貓滾滾cumsum越過後n個元素

df = pandas.Series(numpy.random.randint(0,10,10), index=pandas.date_range('2020-01', periods=10)) 
df 
2020-01-01 8 
2020-01-02 4 
2020-01-03 1 
2020-01-04 0 
2020-01-05 5 
2020-01-06 8 
2020-01-07 3 
2020-01-08 8 
2020-01-09 9 
2020-01-10 0 
Freq: D, dtype: int64 

所需的輸出:

2020-01-01  8 
2020-01-02 12 
2020-01-03 13 
2020-01-04  5 
2020-01-05  6 
2020-01-06 13 
2020-01-07 16 
2020-01-08 19 
2020-01-09 20 
2020-01-10 17 
Freq: D, dtype: int64 

回答

4

您需要rolling.sum:

df.rolling(3, min_periods=1).sum() 
Out: 
2020-01-01  8.0 
2020-01-02 12.0 
2020-01-03 13.0 
2020-01-04  5.0 
2020-01-05  6.0 
2020-01-06 13.0 
2020-01-07 16.0 
2020-01-08 19.0 
2020-01-09 20.0 
2020-01-10 17.0 
dtype: float64 

min_periods EN確保前兩個元素也被計算出來。窗口大小爲3時,默認情況下,前兩個元素是NaN。