gpt4 book ai didi

python - Pandas 时间序列操作

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:22 26 4
gpt4 key购买 nike

我是 Pandas 的新手。我有一个时间序列数据。如何轻松完成以下操作?

我有一个称为输入的二维矩阵。每行有 5 个元素。有很多行(数千)

输入[t,:] = [f1, f2, f3, f4, f5]

(1) 我需要计算样本之间的相对差异。

rel[t,:] = ( input[t,:]-input[t-1,:] )/input[t-1,:]

(2) 我需要创建一个大小为 80 的滑动窗口。

win[t,:] = [rel[t,:],rel[t-1,:],...,rel[t-79,:]]

我如何在 Pandas 或任何其他框架(例如 scikit.timeseries)中执行此操作。

最佳答案

您可以在普通的 numpy 中完成这两项操作,尽管 pandas 可能具有使其更容易的特定功能。但是:

rel = np.diff(input) / input[:-1]

from numpy.lib.stride_tricks import as_strided
win = as_strided(rel, shape=(rel.shape[0]-79, 80), strides=rel.strides*2)

会做的。


如果输入多于一行,你仍然可以像上面那样做:

rel = np.diff(input, axis=1) / input[:, :-1]
win = as_strided(rel, shape=(rel.shape[0], rel.shape[1]-79, 80),
strides=rel.strides + rel.strides[1:])

虽然您可能想尝试使用“形状”和匹配的步幅来获得您想要的确切窗口形状。

关于python - Pandas 时间序列操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15690925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com