У меня есть временной ряд, в котором я хочу очистить набор данных. Как я планирую это сделать, это установить «неправильный» скачок цен на среднее значение цены «до» и «после».
У меня есть имя фрейма панды df с ценой 'mid'. Я установил prx_chg, как показано ниже.
df['prx_chg'] = df['mid'].pct_change(periods= 1, fill_method='pad', limit=None, freq=None).shift(periods = -1).fillna(0)
Есть ли простой способ установить поперек строк 'mid' так, чтобы, если prx_chg был выше величины X, для 'mid' было установлено среднее значение [row -1], [row +1 ]?
Я пробовал ниже использовать лямбда, но не работал
mid = [1.0, 1.1, 1.0, 100, 1.2, 0.9, -100, 1.2]
df = pd.DataFrame(mid, columns = ['mid'])
df['prx_chg'] = df['mid'].pct_change(periods= 1, fill_method='pad', limit=None, freq=None).shift(periods = -1).fillna(0)
df.apply(lambda row: row['mid'] = np.average(a, b) if row['prx_chg'] >= n.abs(10))