如何使用pandas查找高于当前值的先前数据的索引?

时间:2016-03-23 18:10:52

标签: python pandas time-series

我正在寻找更简单快捷的方法来查找使用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]

如果您提出有关实现此类功能的任何提示,将会非常有用。

1 个答案:

答案 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]