假设我有一个由时间戳索引的Pandas Dataframe ,对于每一个点,我需要计算未来5秒内的值与当前值之间的绝对差的中值。
df = pd.DataFrame({'A': [2, 1, 3, 4, -1, 2, -3, 5, 4, -10]},
index=pd.date_range('2022-01-01', periods=10, freq='s'))
在输出中,第一个元素的索引为2022-01-01 00:00:00
,值为1
。1
是如何计算的?在接下来的5秒内,我们得到的值为2,1,3,4,-1,2
,因此与第一个元素的绝对差为0, 1, 1, 2, 3, 0
,中值为1
。
如果这会更简单的话,我也很高兴知道在窗口是向后看的情况下的答案。看起来使用向前看的窗口有点麻烦。
1条答案
按热度按时间kgsdhlau1#
使用
rolling_apply
:这是因为你的时间序列中没有空洞(原因
shift
)更新来自@ilya(作者)的解决方案