Python Pandas:如何删除列中的异常值,并将它们替换为先验值(假设它们不是异常值)?

我有一个看起来像这样的数据框:


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),它会搞砸。


非常感谢你的帮助!


阿晨1998
浏览 159回答 1
1回答

叮当猫咪

正如所评论的,您的样本数据没有异常值。但是,根据您的逻辑,您可以执行以下操作:std, mean = df['Value'].agg(['std','mean'])df['Value'] = df['Value'].where(df['Value'].between(mean-3*std, mean+3*std)).ffill()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python