检查 Pandas 数据框的异常值 [重复]

Posted

技术标签:

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

Plot of sensor

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

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

谢谢!

【问题讨论】:

***.com/questions/23199796/… 【参考方案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()]

【讨论】:

以上是关于检查 Pandas 数据框的异常值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

pandas 库前置知识

pandas_处理异常值缺失值重复值数据差分

pandas_处理异常值缺失值重复值数据差分

处理 Pandas 中的异常值 [重复]

熊猫数据框 - 删除异常值[重复]

在一张图中绘制多个 pandas 数据框