差异通过Python数据帧滚动风

2024-09-28 13:27:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个很大的序列,按时间戳索引。我想计算给定时间段的(最后一个值-第一个值)。在

例如:

timstamp              value
2016-11-08 00:00:00    1
2016-11-08 00:00:02    3
2016-11-08 00:00:03    -2
2016-11-08 00:00:07    6

在给出2秒的时间窗口时,它应该返回:

^{pr2}$

在这个时间段内,连续时间点的收益率是不会被给予的。另外,由于数据帧非常大,我希望在更短的时间内完成(循环消耗大量时间)。在

编辑:利润序列改变为向前看而不是向后看。在

附加测试用例(2秒窗口):

time                      
2011-01-01 00:00:02.000  1
2011-01-01 00:00:04.000  2
2011-01-01 00:00:05.000  3
2011-01-01 00:00:05.500  4
2011-01-01 00:00:06.000  5
2011-01-01 00:00:06.500  6
2011-01-01 00:00:07.000  7

利润系列:

2011-01-01 00:00:02.000  1 [2-1]
2011-01-01 00:00:04.000  3 [5-2]  
2011-01-01 00:00:05.000  4 [7-3]
2011-01-01 00:00:05.500  3 [7-4]
2011-01-01 00:00:06.000  2 [7-5]
2011-01-01 00:00:06.500  1 [7-6]
2011-01-01 00:00:07.000  0 [7-7]

Tags: 数据编辑timevalue时间测试用例序列收益率
1条回答
网友
1楼 · 发布于 2024-09-28 13:27:51

试试这个

s.rolling('2001ms').apply(lambda x: x[-1] - x[0]).shift(-1).fillna(0)

timstamp
2016-11-08 00:00:00    2.0
2016-11-08 00:00:02   -5.0
2016-11-08 00:00:03    0.0
2016-11-08 00:00:07    0.0
Name: value, dtype: float64

相关问题 更多 >

    热门问题