我有一个pandas DataFrame,其中一列包含以下元素:
[2,2.5,3,2,2.6,10,10.3,10,10.1,10.3,10], 有没有一个python函数可以检测列表中从2.6到10的突然变化?我读了一点,R可以做到。python中有没有类似的函数?
发布于 2016-01-25 20:37:31
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] https://stackoverflow.com/questions/34992672
复制相似问题