相关疑难解决方法(0)

如何在前瞻性的基础上使用Pandas rolling_*函数

假设我有一个时间序列:

In[138] rng = pd.date_range('1/10/2011', periods=10, freq='D')
In[139] ts = pd.Series(randn(len(rng)), index=rng)
In[140]
Out[140]:
2011-01-10    0
2011-01-11    1
2011-01-12    2
2011-01-13    3
2011-01-14    4
2011-01-15    5
2011-01-16    6
2011-01-17    7
2011-01-18    8
2011-01-19    9
Freq: D, dtype: int64
Run Code Online (Sandbox Code Playgroud)

如果我使用其中一个rolling_*函数,例如rolling_sum,我可以获得我想要的向后看滚动计算的行为:

In [157]: pd.rolling_sum(ts, window=3, min_periods=0)
Out[157]: 
2011-01-10     0
2011-01-11     1
2011-01-12     3
2011-01-13     6
2011-01-14     9
2011-01-15    12
2011-01-16    15
2011-01-17    18
2011-01-18    21
2011-01-19    24
Freq: D, dtype: float64
Run Code Online (Sandbox Code Playgroud)

但是,如果我想做一个前瞻性的总和怎么办?我尝试过这样的事情:

In [161]: pd.rolling_sum(ts.shift(-2, freq='D'), window=3, min_periods=0)
Out[161]: 
2011-01-08     0
2011-01-09 …
Run Code Online (Sandbox Code Playgroud)

python pandas

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

pandas ×1

python ×1