在常规时间序列中,您可以及时将其向后或向前移动。
例如对于以下时间序列:
start = datetime(2012,1,1)
end = datetime(2012,4,1)
rng = pd.date_range(start,end)
ts = pd.Series(np.random.randn(len(rng)), index = rng)
我们可以改变它:
ts.shift(2, freq="D")
如何仅在一个级别上为 MultiIndex 时间序列执行此操作?
例如对于以下 MultiIndex 时间序列:
mi = [(dt,i) for dt in rng for i in range(5)]
ts_mi = pd.Series(np.random.randn(len(mi)), index = pd.MultiIndex.from_tuples(mi))
这可能看起来像:
2012-01-01 0 -0.805353
1 1.467167
2 -1.207204
3 1.658394
4 1.497559
2012-01-02 0 -0.742510
1 0.764594
2 0.558660
3 -0.479370
4 0.653849
...
使用它移动它ts_mi.shift(2, freq="D")
:
None -0.805353
None 1.467167
None -1.207204
None 1.658394
None 1.497559
None -0.742510
None 0.764594
None 0.558660
None -0.479370
None 0.653849
None -0.138347
None 0.357479
None -0.919202
None 1.300977
None -0.360398
...