我想对具有日期索引的数据帧应用偏移滚动窗口函数。下面是一个例子:rng = pd.date_range('2017-01-03', periods=20, freq='W')
df = pd.DataFrame(np.random.randn(20), rng, columns=['Val'])
df.index.name = 'Date'
r = df.rolling('15D')
这将生成一个数据帧df,如下所示:
^{pr2}$
但是我不知道如何在应用于Rolling窗口的任何函数中查看与每个Val关联的日期。例如,以下内容:def f(data=None): # I really want to reference the Date associated with each Val in here!
print('f(%s) data=%s' % (str(type(data)), data))
return 1
r.apply(lambda x: f(x))
显示我看到的是每个调用的ndarray:f() data=[0.59220959]
f() data=[ 0.59220959 -1.24393841]
f() data=[ 0.59220959 -1.24393841 -0.71398767]
f() data=[-1.24393841 -0.71398767 1.55477737]
...
有没有一种方法可以调用数据帧上的时间偏移滚动窗口,使聚合函数看到与窗口中每个值相关联的索引?在
例如,这样我就可以应用一个函数,它可以看到如下内容:f() data=[{2017-01-08, 0.59221}]
f() data=[{2017-01-08, 0.59221}, {2017-01-15, -1.243938}]
...