2016-01-25 2 views
2

У меня есть панд DataFrame, где один столбец содержит следующие элементы:Изменения обнаружение точки в Python

[2,2.5,3,2,2.6,10,10.3,10,10.1,10.3,10], 

Есть функция Python, которая может обнаружить внезапное изменение от 2,6 до 10 из этого списка? Я прочитал немного, и R может это сделать. Есть ли аналогичная функция в python?

+2

Не мог бы вы пояснить немного то, что вы ожидаете получить и почему? Почему бы не от 2 до 2,6, например? –

ответ

8

IIUC вы могли бы использовать pct_change для этого, чтобы найти отличия между соседями, а затем сравнить с пределом (независимо от того, что это будет):

s = pd.Series([2,2.5,3,2,2.6,10,10.3,10,10.1,10.3,10]) 

In [105]: s.pct_change() 
Out[105]: 
0   NaN 
1  0.250000 
2  0.200000 
3 -0.333333 
4  0.300000 
5  2.846154 
6  0.030000 
7 -0.029126 
8  0.010000 
9  0.019802 
10 -0.029126 
dtype: float64 

In [107]: s[s.pct_change() > 1] 
Out[107]: 
5 10 
dtype: float64 

In [117]: s[s.pct_change() > 1].index.tolist() 
Out[117]: [5]  
Смежные вопросы