Python利用箱型图识别与可视化餐饮销售数据离群点

江岸
江岸
发布时间:2026-10-13| 5人浏览过
原创

本文通过Python实例演示如何使用箱型图(Boxplot)识别并可视化餐饮销售数据中的离群点。文章首先区分了离群点与异常值的概念差异,随后提供基于pandas和matplotlib的完整代码,展示如何读取Excel数据、绘制箱线图,并通过annotate函数对离群点进行精确标注与位置微调,帮助开发者掌握数据清洗中的异常值处理技巧。

离群点与异常值的概念辨析

在开始之前,我们需要简要厘清离群点(outlier)与异常值(anomaly)这两个概念的区别。

所谓离群点,通常指在统计分布中远离主体数据点的观测值。

而异常值则往往暗示着数据生成机制发生了改变,或者存在某种特定的错误、欺诈或特殊事件导致的数值偏离。

从个人理解来看,这两个概念在数据预处理阶段常被混用,但严格意义上并不等同。例如,当姚明出现在普通人群体中时,我们仅能称其为离群点,因为他的身高符合正常生理规律,并非“异常”;若假设他因疾病导致身高突变,那才可能构成异常值。

基于Python的箱型图离群点检测实现

箱型图是识别离群点的有效工具,它通过四分位数展示数据分布,并直观标记出超出上下界限的数据点。

以下是具体的实现代码部分。

针对餐饮销售数据的离群点检测,具体代码如下:


#-*- coding: utf-8 -*-
import pandas as pd

catering_sale = '../data/catering_sale.xls' #餐饮数据
data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列

import matplotlib.pyplot as plt #导入图像库
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

plt.figure() #建立图像
p = data.boxplot(return_type='dict') #画箱线图,直接使用DataFrame的方法
x = p['fliers'][0].get_xdata() # 'fliers'即为离群点的标签
y = p['fliers'][0].get_ydata()
y.sort() #从小到大排序,该方法直接改变原对象

#用annotate添加注释
#其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制。
#以下参数都是经过调试的,需要具体问题具体调试。
for i in range(len(x)): 
 if i > 0:
  plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
 else:
  plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))

plt.show() #展示箱线图

运行上述代码后,将生成包含离群点标注的箱线图。

以上就是利用Python箱型图处理离群点的完整示例,希望能为读者的数据处理工作提供参考。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。