# 这里我包装了一个异常值处理的代码,可以随便调用。 def outliers_proc(data, col_name, scale=3): """ 用于清洗异常值,默认用 box_plot(scale=3)进行清洗 :param data: 接收 pandas 数据格式 :param col_name: pandas 列名 :param scale: 尺度 :return: """ def box_plot_outliers(data_ser, box_scale): """ 利用箱线图去除异常值 在数据分析和预处理过程中,异常值的处理是至关重要的步骤,因为异常值可能对模型的训练和预测结果产生显著影响。Python 提供了多种方法来处理异常值,其中包括使用箱线图(Box Plot)。本篇内容主要介绍了如何封装一个 Python 函数 `outliers_proc`,该函数用于处理数据集中的异常值,特别是通过箱线图法去除异常值。 我们来看函数 `outliers_proc`,它接受三个参数:`data`(Pandas DataFrame 类型的数据),`col_name`(需要处理异常值的列名),以及可选参数 `scale`(默认为 3,表示四分位距的倍数,用于确定异常值的边界)。此函数的主要功能是调用内部辅助函数 `box_plot_outliers` 对指定列的数据进行异常值检测和删除。 `box_plot_outliers` 函数计算了输入数据的四分位距(IQR,Interquartile Range),这是衡量数据分布分散程度的一个统计量,由第三四分位数(Q3)减去第一四分位数(Q1)得出。根据箱线图规则,任何低于 Q1-1.5*IQR 或高于 Q3+1.5*IQR 的数据点被视为异常值。在这个函数中,`box_scale` 参数允许调整这个阈值,例如,当 `scale=3` 时,异常值的界定会更加严格。 在 `outliers_proc` 中,`box_plot_outliers` 返回两个区间:一个是剔除下限(rule_low),另一个是剔除上限(rule_up)。这些范围用于标记DataFrame中需要删除的行。之后,函数将这些行从原始数据集中删除,并返回处理后的数据集。 在处理异常值后,`outliers_proc` 还提供了对被删除的异常值的描述性统计信息,以帮助理解数据的分布。同时,它还绘制了处理前后的箱线图,以便直观地对比异常值处理的效果。 总结一下,`outliers_proc` 函数封装了以下关键知识点: 1. **异常值处理**:通过箱线图法(IQR 规则)识别并删除异常值。 2. **四分位距(IQR)计算**:计算数据的四分位距,作为确定异常值边界的统计量。 3. **自定义阈值**:通过 `scale` 参数调整异常值的界定标准,使异常值处理更具灵活性。 4. **数据操作**:使用 Pandas DataFrame 的 `quantile()` 方法获取分位数,`drop()` 方法删除异常值行,`reset_index()` 方法重置索引。 5. **可视化**:绘制箱线图展示处理前后的数据分布,帮助分析异常值处理的效果。 6. **异常值信息**:提供异常值的描述性统计,便于理解异常值的性质。 这个封装的异常值处理函数对于数据预处理非常实用,可以方便地集成到数据分析工作流中,确保模型训练基于更可靠的数据。在实际应用时,需根据具体需求调整 `scale` 参数,以达到理想的异常值处理效果。
- weixin_421032652022-03-07内容少的可怜,没有价值
- 粉丝: 11
- 资源: 917
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助