检查Pandas数据框中的异常值。

3

传感器的数据可视化

我有一个关于传感器的实验,其中包含8个电极。上面的图是电极输出与时间的图示。从图中可以看出,8个电极中有一个很明显的异常值(可能是由于某种电气故障引起的)。该图是从Pandas DataFrame生成的,这个DataFrame基本上有10列(1列是时间,8列是电极,还有1列对8个电极求平均值)。

最佳的统计方法是什么来检测其中的一列是否为异常值?然后可以将该异常值所在的列从DataFrame中删除。

谢谢!


2
https://dev59.com/5GAg5IYBdhLWcg3wx9XG - skrubber
1个回答

9
散点图或分布图适用于指出异常值。但是在pandas数据框的问题上,以下是我会做的方式。 df.describe()将为您提供平均值、最大值和所有百分位数的良好矩阵。查看列的最大值,如果大于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()]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接