У меня есть приведенный ниже фрейм данных, который представляет собой данные временного ряда, и я обрабатываю эту информацию для ввода в мои модели прогнозирования.
df = pd.DataFrame({"timestamp": [pd.Timestamp('2019-01-01 01:00:00', tz=None),
pd.Timestamp('2019-01-01 01:00:00', tz=None),
pd.Timestamp('2019-01-01 01:00:00', tz=None),
pd.Timestamp('2019-01-01 02:00:00', tz=None),
pd.Timestamp('2019-01-01 02:00:00', tz=None),
pd.Timestamp('2019-01-01 02:00:00', tz=None),
pd.Timestamp('2019-01-01 03:00:00', tz=None),
pd.Timestamp('2019-01-01 03:00:00', tz=None),
pd.Timestamp('2019-01-01 03:00:00', tz=None)],
"value":[5.4,5.1,100.8,20.12,21.5,80.08,150.09,160.12,20.06]
})
Отсюда я беру среднее значение для каждой временной метки и отправляю это значение в качестве входных данных для предсказателя. Но в настоящее время я использую только пороговые значения для фильтрации выбросов, но они, похоже, отфильтровывают реальные значения, а также не фильтруют некоторые выбросы.
Например, я оставил
df[(df['value']>3 )& (df['value']<120 )]
и тогда это не отфильтровывает
2019-01-01 01:00:00 100.8
, которое является выбросом для этой временной метки, и отфильтровывает
2019-01-01 03:00:00 150.09
2019-01-01 03:00:00 160.12
, которые не являются выбросами для этой временной метки.
Итак, как мне отфильтровать выбросы для каждой временной метки на основе того, какая из них не подходит для этой группы?
Любая помощь приветствуется.