Расчет точек пересечения (точки пересечения )серии или кадра данных

У меня есть периодические данные с индексом, представляющим собой число с плавающей запятой, например поэтому:

time =    [0, 0.1, 0.21, 0.31, 0.40, 0.49, 0.51, 0.6, 0.71, 0.82, 0.93]
voltage = [1,  -1,  1.1, -0.9,    1,   -1,  0.9,-1.2, 0.95, -1.1, 1.11]
df = DataFrame(data=voltage, index=time, columns=['voltage'])
df.plot(marker='o')

я хочу создатьcross(df, y_val, direction='rise' | 'fall' | 'cross')функцию, которая возвращает массив временных (индексов )со всеми интерполированные точки, в которых значения напряжения равны y _val . Для 'подъем' возвращаются только те значения, где наклон положителен; для 'падение' восстанавливаются только значения с отрицательным наклоном; для 'крест' возвращаются оба. Таким образом, если y _val=0 и direction='cross' , тогда будет возвращен массив из 10 значений со значениями X точек пересечения (первого составляет около 0,025 ).

Я думал, что это можно сделать с помощью итератора, но мне было интересно, есть ли лучший способ сделать это.

Спасибо. Я люблю Pandas и сообщество Pandas.

7
задан piRSquared 4 January 2017 в 22:54
поделиться