我有一个很大的风速时间序列(熊猫数据帧)(平均10分钟),其中包含错误数据(失效传感器)。如何自动标记它。我正在尝试移动平均线。 除移动平均线以外的其他一些方法非常受赞赏。我已在下面附上示例数据图像。
答案 0 :(得分:1)
有几种方法可以解决此问题。我将首先介绍差异:
%matplotlib inline
import pandas as pd
import numpy as np
np.random.seed(0)
n = 200
y = np.cumsum(np.random.randn(n))
y[100:120] = 2
y[150:160] = 0
ts = pd.Series(y)
ts.diff().plot();
下一步是查找连续零的罢工期多久。
def getZeroStrikeLen(x):
""" Accept a boolean array only
"""
res = np.diff(np.where(np.concatenate(([x[0]],
x[:-1] != x[1:],
[True])))[0])[::2]
return res
vec = ts.diff().values == 0
out = getZeroStrikeLen(vec)
现在,如果len(out)>0
您可以得出结论,那就是有问题。如果您想更进一步,可以看看this。它在R中,但是在Python中复制并不难。