使用箱型图剔除 Python 中的异常值

作者:起个名字好难2024.01.17 20:58浏览量:14

简介:在数据分析中,异常值可能会对结果产生重大影响。箱型图是一种可视化工具,可以帮助我们识别和剔除异常值。本文将介绍如何使用 Python 的 Matplotlib 和 Pandas 库来绘制箱型图并剔除异常值。

在数据分析中,异常值是指远离数据集中心的值,可能会对分析结果产生重大影响。箱型图(Box Plot)是一种可视化工具,可以帮助我们识别和剔除异常值。在箱型图中,异常值通常被定义为低于下四分位数(Q1)减去1.5倍四分位距(IQR)的值,或者高于上四分位数(Q3)加上1.5倍四分位距(IQR)的值。这些异常值可能会对分析结果产生重大影响,因此需要将其剔除。
在 Python 中,我们可以使用 Matplotlib 和 Pandas 库来绘制箱型图并剔除异常值。以下是一个简单的示例代码:

  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 创建一个包含异常值的示例数据集
  4. data = {
  5. 'value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
  6. }
  7. df = pd.DataFrame(data)
  8. # 绘制箱型图
  9. plt.figure(figsize=(10, 5))
  10. plt.boxplot(df['value'], vert=False)
  11. plt.title('Box Plot Example')
  12. plt.xlabel('Value')
  13. plt.ylabel('Frequency')
  14. plt.show()
  15. # 剔除异常值
  16. lower_bound = df['value'].quantile(0.25) - 1.5 * df['value'].quantile(0.75) - df['value'].quantile(0.25)
  17. upper_bound = df['value'].quantile(0.75) + 1.5 * df['value'].quantile(0.75) - df['value'].quantile(0.25)
  18. outliers = df[(df['value'] < lower_bound) | (df['value'] > upper_bound)]
  19. print('Outliers:', outliers)

在上面的代码中,我们首先创建了一个包含异常值的示例数据集。然后使用 Matplotlib 绘制了箱型图,其中横轴表示值,纵轴表示频率。在箱型图中,箱体表示四分位数范围(IQR),线段表示中位数,圆圈表示异常值。最后,我们使用 Pandas 的 quantile 方法计算了箱型图的上下界,并筛选出了异常值。