跳转至

找出异常值的两种方法

本文总阅读量次 ,原创教程,严禁转载

找出异常值常用两种方法

数据预处理常用的处理步骤,包括找出异常值、处理缺失值、过滤不合适值、去掉重复行、分箱、分组、排名、category转数值等,下面使用 pandas 解决这些最常见的预处理任务。

找出异常值常用两种方法: - 标准差法:异常值平均值上下1.96个标准差区间以外的值 - 分位数法:小于 1/4分位数减去 1/4和3/4分位数差的1.5倍,大于3/4减去 1/4和3/4分位数差的1.5倍,都为异常值

标准差法

import pandas as pd

df = pd.DataFrame({'a':[1,3,np.nan],'b':[4,np.nan,np.nan]})

# 异常值平均值上下1.96个标准差区间以外的值
meangrade = df['a'].mean()
stdgrade = df['a'].std()
toprange = meangrade + stdgrade * 1.96
botrange = meangrade - stdgrade * 1.96

# 过滤区间外的值
copydf = df
copydf = copydf.drop(copydf[copydf['a']
        > toprange].index)
copydf = copydf.drop(copydf[copydf['a']
        < botrange].index)
copydf

分位数法:

q1 = df['a'].quantile(.25)
q3 = df['a'].quantile(.75)
iqr = q3-q1
toprange = q3 + iqr * 1.5
botrange = q1 - iqr * 1.5

copydf = df
copydf = copydf.drop(copydf[copydf['a']
        > toprange].index)
copydf = copydf.drop(copydf[copydf['a']
        < botrange].index)
copydf