我正在寻找更简单快捷的方法来查找使用pandas的2个时间序列值之间的差异。
我有以下时间序列数据:
a = [100, 20, 0, 10, 10, 50]
我想知道获得高于当前值的价值指数的方法。
例如,a[3]
为10
。
我们向后移动一步以搜索高于10的值。
a[2]
为0
,低于10
(== a[3]
)。我们转到a[1]
。
a[1]
为20
,高于10
。
所以答案我想要的是2,它是(a[3]
的索引 - a[1]
的索引)。
如果是a[5]
(== 50
),我想要的答案是5
,即a[5]
的索引 - {{1}的索引})。
所有结果如下:
a[0]
如果您提出有关实现此类功能的任何提示,将会非常有用。
答案 0 :(得分:1)
我相信您列出的输出与您的要求不一致。这个功能可能就是你想要的。
def func(l, index):
for i in range( index):
if l[index - i - 1] > l[index]:
break
else:
return 0 # return 0 if it never finds a larger number (loop completes)
return i + 1 # this should be the distance
它向后搜索,并返回到下一个更大的数字的距离(如果不存在则返回零)
[func(a, i) for i in range(len(a))]
给出了
[0, 1, 1, 2, 3, 5]