У меня есть следующий DataFrame df
:
ds y
2018-10-01 00:00 1.23
2018-10-01 01:00 2.21
2018-10-01 02:00 6.40
... ...
2018-10-02 00:00 3.21
2018-10-02 01:00 3.42
2018-10-03 02:00 2.99
... ...
Это означает, что у меня есть одно значение для y
за каждый час.Я хотел бы отфильтровать строки так, чтобы значения, которые не находятся внутри интервала 6-сигма (3 * STD, -3 * STD) были удалены.
Я могу сделать это для всего DataFrameтаким образом:
df = df[np.abs(df.y-df.y.mean()) <= (3*df.y.std())]
Но я бы хотел делать это каждый день.
Обратите внимание, что ds
это datetime64[ns]
и y
a float64
.
Кроме того, поскольку моей конечной целью является исключение выбросов из данных, можете ли вы предложить другие жизнеспособные варианты для достижения этой цели?