python - 使用标准差和均值公式删除异常值
问题描述
大家好,
我正在尝试从我的数据集中删除异常值。我使用 mean-3*std 和 mean+3*std 定义了异常值边界。现在我想删除小于 mean-3*std 的值并删除大于 mean+3*std 的值。你能帮我写一个公式吗?我是python的初学者。我已经看过类似的问题,但到目前为止这并没有帮助。
到目前为止,我有以下内容:
import pandas as pd
print(df_OmanAirTO.mean()-3*df_OmanAirTO.std(), df_OmanAirTO.mean()+3*df_OmanAirTO.std())
导致:
FuelFlow 2490.145718
ThrustDerateSmoothed 8.522145
CoreSpeed 93.945180
EGTHotDayMargin 9.950557
EGT 684.168701
TotalAirTemperature 11.980698
ThrustDerate -3.780215
dtype: float64
FuelFlow 4761.600157
ThrustDerateSmoothed 29.439075
CoreSpeed 101.360974
EGTHotDayMargin 90.414781
EGT 915.952163
TotalAirTemperature 43.266653
ThrustDerate 44.672861
dtype: float64
现在我想删除小于 mean-3*std 的值并删除大于 mean+3*std 的值。我怎样才能做到这一点?
预先感谢您帮助我!
解决方案
我假设您想在每列上应用异常值条件(即在 column 中FuelFlow
,删除小于2490.145718
和大于的单元格4761.600157
,在 column 中ThrustDerateSmoothed
,删除小于8.522145
和大于的单元格29.439075
,等等...)
我会试试这个:
filt_outliers_df_oman = df.apply(lambda x: x[(x < df_OmanAir[x.name].mean()-3*df_OmanAir[x.name].std()) &
(x > df_OmanAIr[x.name].mean()+3*df_OmanAir[x.name].std())], axis=0)
推荐阅读
- flutter - 如何将 native_pdf_view 集成到我的应用程序中(颤振)?
- scala - 将苹果放在用 Scala 编写的蛇游戏中
- c++ - 从垂直法线找到每个轴的角度
- flutter - Flutter MiBand 服务
- tensorflow - ValueError: Shape (None, 17) must have rank 1
- ios-simulator - React Native iOS 无法定位 sqlite 数据库
- java - 如何在 HourlyWorker 类中实现计算加班费的方法
- python - 我的简单 Dash 应用程序有什么问题导致我的绘图无法正常工作?
- python - 通过 Pandas .loc 迭代条件
- python - 如何返回每个类别的最大值?有些有 NAN 值,有些只有一个 NAN 值