找出异常值常用两种方法
编辑日期: 2024-11-28 文章阅读: 次
找出异常值常用两种方法
数据预处理常用的处理步骤,包括找出异常值、处理缺失值、过滤不合适值、去掉重复行、分箱、分组、排名、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]})
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