我有一个不规则采样的时间序列,并且想使用类似的函数pandas.stats.moments.rolling_sum
。
不幸的是,该函数看起来只能返回“x”个样本,而不是“x”秒。
不知道如何解决这个问题......对熊猫来说很新。
我的数据看起来像
time value
0.000 0.0000
0.013 0.0134
0.023 0.0256
0.035 0.0423
0.049 0.0756
0.069 0.0998
我有一个不规则采样的时间序列,并且想使用类似的函数pandas.stats.moments.rolling_sum
。
不幸的是,该函数看起来只能返回“x”个样本,而不是“x”秒。
不知道如何解决这个问题......对熊猫来说很新。
我的数据看起来像
time value
0.000 0.0000
0.013 0.0134
0.023 0.0256
0.035 0.0423
0.049 0.0756
0.069 0.0998
这是一种做我认为你想要的方法
In [34]: df = read_csv(StringIO(data),sep='\s+')
创建一个 datelike-index (假设你的意思是秒,需要转换为 ns 以添加到日期)
In [35]: df['time'] = pd.to_datetime([Timestamp('20130101').value + v*1e9 for v in df['time'] ])
In [36]: df.set_index('time',inplace=True)
In [37]: df
Out[37]:
value
time
2013-01-01 00:00:00 0.0000
2013-01-01 00:00:00.012999 0.0134
2013-01-01 00:00:00.023000 0.0256
2013-01-01 00:00:00.035000 0.0423
2013-01-01 00:00:00.048999 0.0756
2013-01-01 00:00:00.068999 0.0998
使结果符合 20 毫秒,滚动 20 个周期,没有最小值
In [38]: pd.rolling_sum(df,20,0,freq='20ms')
Out[38]:
value
time
2013-01-01 00:00:00 0.00670
2013-01-01 00:00:00.020000 0.04065
2013-01-01 00:00:00.040000 0.11625
2013-01-01 00:00:00.060000 0.21605