一、3σ原则
3σ原则又称为拉依达准则,该准则具体来说,就是先假设一组检测数据只含有随机误差,对原始数据进行计算处理得到标准差,然后按一定的概率确定一个区间,认为误差超过这个区间的就属于异常值。
正态分布状况下,数值分布表:
数值分布 | 在数据中的占比 |
---|---|
(μ-σ,μ+σ) | 0.6827 |
(μ-2σ,μ+2σ) | 0.9545 |
(μ-3σ,μ+3σ) | 0.9973 |
注:在正态分布中σ代表标准差,μ代表均值,x=μ为图形的对称轴
import pandas as pd
import numpy as np
# 定义3σ法则识别异常值函数
def three_sigma(Ser1):
'''
Ser1:表示传入DataFrame的某一列。
'''
rule = (Ser1.mean()-3*Ser1.std()>Ser1) | (Ser1.mean()+3*Ser1.std()< Ser1)
index = np.arange(Ser1.shape[0])[rule]
outrange = Ser1.iloc[index]
return outrange
# 导入数据并调用three_sigma
df = pd.read_csv('./data