【问题标题】:Remove Outlier Row from pandas dataframe [closed]从熊猫数据框中删除异常值行[关闭]
【发布时间】:2017-09-24 20:28:27
【问题描述】:

从熊猫数据框中删除异常值的有效方法是什么? 我有一个 pandas 数据框,我需要从数据框中删除异常点。

 X1       X2              X3              X4
228.0   4474.91836735   3507.15151515   6625.0
77.0    468.0           582.0           549.0
160.0   9.0             3507.15151515   6625.0
36.0    250.0           3507.15151515   6625.0
52.0    3.0             3.0             223.0
78.0    998.0           3507.15151515   6625.0

我尝试了link 中的解决方案 但没有删除任何点。即使是相同的 sklearn 实现也会很有用。

【问题讨论】:

    标签: python pandas dataframe scikit-learn outliers


    【解决方案1】:

    这里确实存在两个问题:1) 异常值检测,以及 2) 从数据帧中删除它们。

    问题 #2 相当简单。一旦在列中检测到异常值,您就可以使用类似的方法:

    df = df[df.loc[:,'column_name'] < high_threshold]
    df = df[df.loc[:,'column_name'] > low_threshold]
    

    现在对于 #1,异常值检测方法差异很大。如果您只有这 4 个维度并且没有那么多数据,那么 Median Absolute Deviation 方法可能就足够了,不需要 sklearn。

    由于我不知道你的申请,所以我会指给你this documentation on outlier detection in sklearn

    【讨论】:

      猜你喜欢
      • 2018-01-09
      • 2018-02-24
      • 2020-07-26
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多