определить координаты, где пересекаются два временных ряда панд, и сколько раз пересекаются временные ряды

Если бы я построил график двух временных рядов, предположим, что они оба имеют восходящий положительный тренд слева направо, можно ли вообще использовать панды, чтобы найти, где пересекаются две линии и как часто?

Например:

Как часто пересекаются два временных ряда: 1

Каковы координаты точек пересечения: приблизительно по оси X: 1955 по оси Y: 7

введите описание изображения здесь


person yoshiserry    schedule 14.11.2015    source источник
comment
Вы нашли решение?   -  person Mihkel L.    schedule 21.02.2017


Ответы (1)


Вот быстрая попытка использования pandas.

import pandas as pd
import numpy as np

df = pd.DataFrame({"A":[1,2,3,4,5], "B":[0.5,3,1,1,6]})
print df

Который дает

   A    B
0  1  0.5
1  2  3.0
2  3  1.0
3  4  1.0
4  5  6.0

Затем используйте разницу

df['difference'] = df.A - df.B

df['cross'] = np.sign(df.difference.shift(1))!=np.sign(df.difference)
np.sum(df.cross)-1

Вам нужно -1 для первой строки, в которой shift(1) вернет NaN

person luckylwk    schedule 14.11.2015