在python中更改点检测

时间:2016-01-25 12:30:36

标签: python python-2.7 pandas

我有一个pandas DataFrame,其中一列包含以下元素:

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

是否有一个python函数可以检测到该列表中2.6到10的突然变化?我已经阅读了一点,R可以做到这一点。 python中有类似的功能吗?

1 个答案:

答案 0 :(得分:9)

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]