【问题标题】:Checking a Pandas Dataframe for Outliers [duplicate]检查 Pandas 数据框的异常值 [重复]
【发布时间】:2018-06-13 17:27:11
【问题描述】:

Plot of sensor

我在一个包含 8 个电极的传感器上进行了实验。 上图是电极输出与时间的关系图。 正如您在图中看到的那样,8 个电极中的一个显然是异常值(可能是由于某些电气故障)。 该图是从 Pandas DataFrame 生成的,它基本上有 10 列(1 列时间,8 列电极,1 列平均 8 个电极)。

统计检测其中一列是否为异常值的最佳方法是什么?我想离群值列可以从数据框中删除。

谢谢!

【问题讨论】:

标签: python pandas


【解决方案1】:

散点图或分布图非常适合指出异常值。但在熊猫数据框问题的背景下,我会这样做。

df.decribe()

将为您提供一个很好的均值、最大值和所有百分位数矩阵。查看列的最大值以指出异常值(如果其大于 75 个百分位数的值)。

然后df['Sensor Value'].value_counts()应该给你值的频率。您将在此处显示具有较大值和较低频率的异常值。

获取他们的索引并使用df.drop(indexes_list, inplace=True)删除它们

编辑: 您也可以使用mean +/- 3 * standard deviation 检查异常值。

示例代码:

outliers = df[df[col] > df[col].mean() + 3 * df[col].std()]

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 2021-11-13
    • 1970-01-01
    • 2018-12-03
    • 2020-12-31
    • 2018-02-24
    • 1970-01-01
    • 2022-10-05
    • 2018-03-29
    相关资源
    最近更新 更多