Python Pandas: Как удалить выбросы в столбце и заменить их предыдущими значениями (при условии, что они не являются выбросами)? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть кадр данных, который выглядит следующим образом:

Date | Value. 
2020-03-18 10 
2020-03-19 20 
2020-03-20 30 
2020-03-21 25 
2020-03-22 35 
2020-03-23 50 
2020-03-24 1900000 
2020-03-25 1200000 
2020-03-26 50 
2020-03-27 25 
2020-03-28 35 
2020-03-29 50 
2020-03-30 25 
2020-03-31 35 
... 
2021-01-31 45 

Какой самый быстрый способ для меня заменить выбросы в столбце value предыдущими значениями, отличными от выбросов?

Мне нужно быть осторожным, чтобы не просто заменить выбросы предыдущим числом, потому что это может привести к ошибкам, если предыдущее значение также является выбросом (как видно из 2020-03-24).

Большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 22 апреля 2020

Как прокомментировано, ваши данные выборки не имеют выбросов. Однако, согласно вашей логике c, вы можете сделать:

std, mean = df['Value'].agg(['std','mean'])

df['Value'] = df['Value'].where(df['Value'].between(mean-3*std, mean+3*std)).ffill()
...