相关疑难解决方法(0)

检测并排除Pandas数据帧中的异常值

我有一个包含很少列的pandas数据帧.

现在我知道某些行是基于某个列值的异常值.

例如列 - 'Vol'的所有值都大约为12xx,一个值为4000(异常值).

现在我想排除那些有'Vol'列的行.因此,基本上我需要在数据框上放置一个过滤器,以便我们选择所有行,其中某列的值在与平均值相差3个标准差的范围内.

实现这一目标的优雅方式是什么?

python filtering outliers dataframe pandas

174
推荐指数
12
解决办法
19万
查看次数

matplotlib:在绘图时忽略异常值

我正在绘制各种测试的一些数据.有时在测试中我碰巧有一个异常值(比如说0.1),而所有其他值都小三个数量级.

使用matplotlib,我会对范围进行绘图 [0, max_data_value]

我怎样才能放大我的数据而不显示异常值,这会弄乱我的情节中的x轴?

我应该简单地采用95%并且[0, 95_percentile] 在x轴上具有范围吗?

python plot matplotlib outliers percentile

29
推荐指数
4
解决办法
3万
查看次数

基于中值绝对偏差 (MAD) 的异常值检测

我想使用@Joe Kington 的答案应用基于中值绝对偏差 (MAD) 的异常值检测,如下所示:

一维观测数据中检测异常值的 Pythonic 方法

但是,我的代码出了什么问题,我不知道如何将异常值指定为 MY DATA 的 nan 值:

import numpy as np
data = np.array([55,32,4,5,6,7,8,9,11,0,2,1,3,4,5,6,7,8,25,25,25,25,10,11,12,25,26,27,28],dtype=float)
median = np.median(data, axis=0)
diff = np.sum((data - median)**2, axis=-1)
diff = np.sqrt(diff)
med_abs_deviation = np.median(diff)
modified_z_score = 0.6745 * diff / med_abs_deviation
data_without_outliers = data[modified_z_score < 3.5]
?????
print data_without_outliers
Run Code Online (Sandbox Code Playgroud)

python numpy scipy

6
推荐指数
1
解决办法
9866
查看次数

标签 统计

python ×3

outliers ×2

dataframe ×1

filtering ×1

matplotlib ×1

numpy ×1

pandas ×1

percentile ×1

plot ×1

scipy ×1