Python 官方文档:入门教程 => 点击学习
目录 箱型图 pandas.DataFrame.quantile 参数: 返回:(Series or DataFrame) 示例: 代码实现 参考 箱型图 将一组数据从大到小排列,分别计算出, 上四分位数𝑄3: 75%
目录
将一组数据从大到小排列,分别计算出,
上四分位数𝑄3: 75%分位点所对应的值
中位数𝑄2: 50%分位点对应的值
下四分位数𝑄1: 25%分位点所对应的值
上边缘(须): Q3+1.5(Q3-Q1)
下边缘(须): Q1-1.5(Q3-Q1)
数据𝑥的合理范围为:
𝑄1 − 1.5(𝑄3 − 𝑄1) ≤ 𝑥 ≤ 𝑄3 + 1.5(𝑄3 − 𝑄1)和使用3σ准则剔除异常值相比,箱线图不需要数据服从正态分布,能真实直观的表现数据形状;箱线图以四分位数和四分位距作为判断异常值的标准,四分位数具有一定的耐抗性,多达 25%的数据可以变得任意远而不会很大地扰动四分位数,使得异常值无法对数据形状造成巨大影响,因此箱形图识别异常值的结果比较客观。
对于dataframe形式的数据,可以直接调用DataFrame.quantile(),以快速计算箱型图的分位点。
DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear')
import pandas as pdimport numpy as np# 生成数据d = pd.DataFrame({"SO2":[-1000, 5, 5, 10, 9, 12, 11, 100], "NO2":[12, 52, 14, 10, 10, 23, 15, 9], "CO2":[15, 23, 0, 24, 25, 7, 4, 715], "O3":[17, 23, 33, 10000, 11, 47, 5, 22] })
q 为 float:
q 为 数组:
# 箱型图判断异常点def box_outlier(data): df = data.copy(deep=True) out_index = [] for col in df.columns: # 对每一列分别用箱型图进行判断 Q1 = df[col].quantile(q=0.25) # 下四分位 Q3 = df[col].quantile(q=0.75) # 上四分位 low_whisker = Q1 - 1.5 * (Q3 - Q1) # 下边缘 up_whisker = Q3 + 1.5 * (Q3 - Q1) # 上边缘 # 寻找异常点,获得异常点索引值,删除索引值所在行数据 rule = (df[col] > up_whisker) | (df[col] < low_whisker) out = df[col].index[rule] out_index += out.tolist() df.drop(out_index, inplace=True) return df
使用前文创建的数据
box_outlier(d)
【PYTHON 机器学习】正态分布检验以及异常值处理3Σ原则
来源地址:https://blog.csdn.net/qq_57313910/article/details/127103346
--结束END--
本文标题: python使用箱型图剔除异常值
本文链接: https://lsjlt.com/news/403066.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0