Mih*_*iha 2 python series pandas
我想实现异常值检测,它将使用一个窗口来检查下一个元素是否是异常值.假设我们在pd上使用长度为3的窗口.这样的系列:[0,1,2,3,4].我会在[0,1,2]上计算中位数和疯狂(或平均值和标准值)并检查3是否是异常值.
我实现了一个for循环解决方案,但它确实很慢.
假设你开始
s = pd.Series([1, 2, 1, 4, 2000, 2])
Run Code Online (Sandbox Code Playgroud)
然后使用rolling,以下将显示第5个元素距离长度为3的窗口中位数为200:
(s - s.rolling(3).median()).abs() > 200
0 False
1 False
2 False
3 False
4 True
5 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
它是矢量化的,因此应该比for循环快得多.
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |