问答

对DolphinDB时序数据应用rolling window

作者:admin 2021-09-08 我要评论

pandas可以基于时间列对数据按时间窗口进行聚合计算。官网给了一个例子: df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},... index = [pd.Timestamp('20130101...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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一样对时间列进行rolling计算。

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 对DolphinDB时序数据应用rolling windo

    对DolphinDB时序数据应用rolling windo

  • php传超大文件2GB方案

    php传超大文件2GB方案

  • 未声明的标识符

    未声明的标识符

  • 请问我画的状态机图对吗

    请问我画的状态机图对吗

腾讯云代理商
海外云服务器