Pandas DolphinDB时间序列数据的滚动窗口
在pandas中,可以在类似datetime的列上计算滚动窗口,该列具有类似偏移量的窗口 官方文件给出了一个例子:Pandas DolphinDB时间序列数据的滚动窗口,pandas,time-series,rolling-computation,dolphindb,Pandas,Time Series,Rolling Computation,Dolphindb,在pandas中,可以在类似datetime的列上计算滚动窗口,该列具有类似偏移量的窗口 官方文件给出了一个例子: >>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}, ... index = [pd.Timestamp('20130101 09:00:00'), ... pd.Timestamp('20130101 09:00:02'),
>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},
... index = [pd.Timestamp('20130101 09:00:00'),
... pd.Timestamp('20130101 09:00:02'),
... pd.Timestamp('20130101 09:00:03'),
... pd.Timestamp('20130101 09:00:05'),
... pd.Timestamp('20130101 09:00:06')])
>>> df.rolling('2s').sum()
B
2013-01-01 09:00:00 0.0
2013-01-01 09:00:02 1.0
2013-01-01 09:00:03 3.0
2013-01-01 09:00:05 NaN
2013-01-01 09:00:06 4.0
在DolphinDB中,mavg、msum等移动函数只能根据列的行数而不是时间段来计算。因此,当我运行以下代码时:
t = table(09:00:00 09:00:02 09:00:03 09:00:05 09:00:06 as time, 0 1 2 NULL 4 as B)
select msum(B, 2) from t
我得到的是:
msum_B
------
NULL
1
3
2
4
不管时间列是什么,结果都是一样的
我想知道是否可以根据DolphinDB中的时间列计算滚动窗口。DolphinDB数据库的窗口连接满足您的需要
select tleft.time, sum from wj(t as tleft, t, -1:0, <sum(B) as sum>, `time)
选择tleft.time,从wj求和(t为tleft,t,-1:0,`time)