我有一个看起来像这样的数据框:
日期|值。2020-03-18 102020-03-19 202020-03-20 302020-03-21 252020-03-22 352020-03-23 502020-03-24 19000002020-03-25 12000002020-03-26 502020-03-27 252020-03-28 352020-03-29 502020-03-30 252020-03-31 35...2021-01-31 45
对我来说,用先前的非离群值替换“值”列中的离群值最快的方法是什么?
我需要注意不要简单地用先验值代替离群值,因为如果先验值也是离群值,它会弄乱(如2020-03-24所示)。
非常感谢您的帮助!
如前所述,您的样本数据没有异常值。但是,根据您的逻辑,您可以执行:
std, mean = df['Value'].agg(['std','mean'])
df['Value'] = df['Value'].where(df['Value'].between(mean-3*std, mean+3*std)).ffill()