【问题标题】:Rolling window on DolphinDB time-series dataDolphinDB 时间序列数据的滚动窗口
【发布时间】:2020-01-20 04:12:04
【问题描述】:

在 pandas 中,可以在具有类似偏移量窗口的类似日期时间的列上计算滚动窗口。

官方文档给出了一个例子:

>>> 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 中的时间列计算滚动窗口。

【问题讨论】:

    标签: pandas time-series rolling-computation dolphindb


    【解决方案1】:

    DolphinDB 数据库的窗口连接满足您的需求。

    select  tleft.time, sum from wj(t as tleft, t, -1:0, <sum(B) as sum>, `time)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 2019-12-23
      • 2017-03-17
      • 2018-07-07
      • 1970-01-01
      相关资源
      最近更新 更多