基于Python的电商农产品销售数据分析与可视化系统
目录
有需要本项目的代码、文档、完整资源,或者需要部署调试的朋友,可以私信博主。



图 1 项目封面展示
一、项目概览
这个项目围绕电商平台上的农产品商品数据展开,重点不是简单把表格搬到页面上,而是把商品标题、关键词、价格、销量、店铺、品种、原产地等字段串成一条完整的数据分析链路。前期通过 Python 对多份 CSV 数据进行合并和清洗,中间使用 Pandas、MySQL 等工具完成指标沉淀,最后再用 ECharts、Pyecharts 和 Flask 做成可交互的可视化页面。整个流程从数据处理到页面展示都能跑通,比较适合作为数据分析、可视化开发、Python Web 综合实训以及毕业设计类项目。
我在整理这个系统时,最关注的是两个问题:一是数据要能支撑分析,不能只是堆几个静态图;二是页面要有展示效果,打开后能看到项目的完整度。围绕这两个目标,项目把农产品电商数据拆成多个分析视角,包括关键词热度、平均价格、平均销量、品种分布、产地分布、门店表现、标题词云、价格区间和销量区间等。每个视角既可以单独展示,也可以组合到大屏页面里,形成一个较完整的农产品销售数据看板。
项目中使用的数据覆盖了包菜、大米、甘蔗、红薯、红枣、黄瓜、鸡蛋、橘子、猕猴桃、蘑菇、苹果、葡萄、桃子、土豆、香蕉、玉米等多个关键词。清洗后的公开展示数据保留了八个核心字段,既能做商品数量统计,也能做价格和销量的交叉分析。由于原始商品标题和店铺名称里可能出现真实商家信息,公开展示时对局部内容做了弱化处理,重点保留趋势、结构和功能效果。

图 2 系统技术路线与数据流转
二、数据处理
农产品电商数据的一个特点是字段看起来简单,但真正分析时会遇到不少细节问题。不同关键词对应不同 CSV 文件,字段命名要统一,重复记录要处理,价格和销量字段要转换成可计算格式,标题和店铺字段也要避免在展示时直接泄露。项目的第一步就是把这些数据合并成统一数据表,然后对重复值、缺失值和异常价格进行检查。清洗完成后,再生成适合后续入库和可视化调用的数据文件。
在字段设计上,项目最终保留了 keyword、product_id、title、price、store、sales、variety、origin 等核心字段。keyword 用来区分采集关键词,title 保留商品标题语义,price 和 sales 用于数值分析,variety 和 origin 负责品种和产地维度,store 则用于门店层面的销量统计。这个字段结构比较清晰,后续无论是写 SQL、做 Pyecharts 图表,还是对接 Flask 接口,都比较方便。
为了让结果更适合展示,项目没有把所有原始字段都直接抛到前端,而是先把分析指标沉淀出来。例如关键词出现次数、关键词平均价格、关键词平均销量、产地商品数量、品种数量、门店总销量等,都可以提前计算成结果表。这样前端页面打开时只需要读取已经处理好的数据,不需要在浏览器端承担太多计算压力,页面响应也更稳定。
|
|
|
|
图 3 清洗后数据样例展示 |
图 4 项目代码与资源结构 |
三、分析指标
可视化项目最怕只有图,没有问题意识。这个系统的指标设计主要围绕三个问题展开:第一,哪些农产品在数据中出现频率更高;第二,不同品类之间的价格和销量差异如何;第三,商品产地、品种、店铺之间是否存在明显分布特征。围绕这些问题,项目把指标分成关键词分析、价格分析、销量分析、产地分析、品种分析、门店分析和标题词云分析几类。
关键词分析主要用来观察不同农产品的商品规模,比如蘑菇、猕猴桃、橘子、大米、红薯等关键词对应的商品量差异。价格分析则关注不同关键词下的平均价格,能够大致看出哪些品类在电商平台上的价格区间更高。销量分析更接近运营视角,可以帮助判断哪些商品类型的需求更活跃。把价格和销量放到一起看,还能发现一些“价格不高但销量可观”或“价格偏高但销量稳定”的品类。
产地和品种维度是农产品项目比较有特点的地方。相比普通商品,农产品往往和地域属性紧密相关,产地分布能够体现供应端特点,品种分布则能展示同一关键词下的细分结构。比如红薯下面可以继续拆成不同品种,黄瓜也可以拆成普通黄瓜、刺黄瓜等。通过这些细分指标,页面不再只是展示总量,而是能呈现农产品销售背后的结构差异。
|
|
|
|
图 5 各类农产品商品数量分布 |
图 6 不同关键词平均价格对比 |
|
|
|
|
图 7 不同关键词平均销量对比 |
图 8 价格与销量关系展示 |
四、可视化实现
项目在可视化实现上采用了两种展示方式。第一种是单页图表,每个指标对应一个独立 HTML 页面,适合调试、截图和单独查看。第二种是综合大屏,把多个指标组合到同一个页面里,通过统一的配色、卡片、图表区域和交互逻辑呈现整体效果。这样既方便开发时逐个验证图表,也方便最终作为项目成果展示。
单页可视化主要由 Pyecharts 生成,包括柱状图、饼图、玫瑰图、热力图、漏斗图和词云图等。每个图表围绕一个明确指标展开,例如关键词出现次数、不同关键词平均价格、不同产地商品占比、价格区间分布、门店总销量 Top20 等。这种方式的好处是开发成本低,图表复用性强,后续如果要替换数据,只需要重新跑指标计算和渲染脚本即可。
综合大屏则更强调整体观感。页面采用深色背景、顶部数据概览卡片、多个分析面板和动态时间区域,前端使用 ECharts 渲染主要图表,后端通过 Flask 提供接口数据。虽然这个系统的规模不算特别大,但它把一个数据项目常见的几个环节都串起来了:数据准备、指标计算、图表生成、接口服务和页面展示。对于展示型项目来说,这种闭环很重要。
|
|
|
|
图 9 农产品原产地分布 |
图 10 品种商品数量 Top 15 |
|
|
|
|
图 11 关键词与品种数量热力图 |
图 12 价格区间分布玫瑰图 |

|
|
|
|
图 13 销量区间分布 |
图 14 门店总销量 Top20 匿名展示 |
五、词云与标题分析
商品标题是电商数据里信息密度很高的字段。很多时候,标题里不仅有商品名称,还有规格、产地、卖点、包装方式和促销词。项目对标题文本进行了清洗,并结合停用词表过滤掉“官方、旗舰、包邮、现货、礼盒、活动”等泛化词,再通过分词和词频统计生成词云。词云不适合替代严肃统计,但非常适合放在展示页面里,能直观体现商品标题中的高频表达。
在公开展示版本中,词云只保留整体语义,不展示完整商品标题列表。这样既能看到项目对文本字段的利用,也能避免把平台商品文案完整复制出来。对于后续扩展来说,标题文本还可以继续做情感倾向、促销词识别、规格抽取、产地识别和商品卖点分析。当前项目没有把这些功能完全展开,主要是保留为可继续升级的方向。

图 15 商品标题词云展示
六、后端接口与页面联动
除了生成静态图表,项目还保留了 Flask 服务端结构。app.py 作为入口文件,负责启动 Web 服务并注册蓝图;views/big_page.py 中封装了多个接口,用于读取数据库中的统计结果,并以 JSON 形式返回给前端。前端 index.html 和 index.js 负责页面布局、接口请求、ECharts 初始化和图表渲染。这样处理后,系统就不只是“导出几张图”,而是具备了一个可运行的数据可视化平台雏形。
后端接口设计也比较贴近真实项目习惯,例如数据概览接口返回商品总数、平均价格、总销量和门店数量;关键词接口返回关键词热度和价格分析;销量接口返回不同关键词的平均销量;产地接口返回产地分布数据。前端拿到这些数据后,再根据不同图表类型进行渲染。这里没有把数据库配置、账号密码等信息放进公开图片中,截图里的敏感配置已经做了遮挡处理。
从开发角度看,这种架构的好处是清晰。数据清洗由 notebook 完成,指标结果可以存入数据库,接口层只负责查询和返回数据,前端只负责展示。后期如果要把数据源换成其他平台,或者把 MySQL 换成其他存储,只要保持接口返回结构稳定,前端页面就不需要大改。
|
|
|
|
图 16 Flask 接口代码片段(已脱敏) |
图 17 系统功能模块设计 |
七、页面效果
项目最终展示效果以“数据看板”为主,页面里有指标卡片、柱状图、饼图、热力图、词云和价格销量关系图。为了方便发布展示,我把真实店铺名称、商品编号、数据库连接信息等内容都做了处理,只保留功能效果和分析逻辑。公开页面不需要给出全部原始数据,也不需要把每一条 SQL 和每一个参数都写出来,重点是展示这个项目能完成什么、怎么组织、最终长什么样。
大屏页面的价值在于集中呈现。顶部卡片用于展示核心指标,中间和底部区域放置不同维度的图表,用户打开后能够直接看到商品规模、价格分布、销量表现、产地结构和标题热词。对于课程设计或者毕业设计答辩来说,这类页面比单独展示代码更直观,也更容易说明项目完整性。
这个项目还有一个比较实用的地方:图表数量足够多。单页可视化可以作为截图素材,大屏页面可以作为主展示入口,代码结构又能说明开发过程。后续如果需要写论文、说明书、部署文档、演示视频或者项目博客,都有比较充足的材料可以展开。

图 18 可视化大屏综合展示
八、运行部署
从运行角度看,项目主要依赖 Python、Pandas、Pyecharts、Flask、ECharts、MySQL 等工具。先准备 Python 环境和相关依赖,再导入数据库脚本或生成清洗后的数据文件,随后运行可视化分析脚本生成图表,最后启动 Flask 服务访问大屏页面。由于项目本身以本地演示为主,不需要复杂的服务器环境,普通开发电脑就可以完成部署和调试。
如果要进一步完善,可以把采集脚本、清洗脚本、指标计算脚本和 Web 服务整合成一套更规范的项目结构,再加入用户登录、数据上传、定时更新、图表筛选、下载报告等功能。也可以把数据换成其他电商品类,例如生鲜、零食、家电、图书等,只要字段结构相近,整体分析框架都能迁移。
在实际展示中,我更建议把这个项目定位成“电商农产品销售数据分析与可视化平台”,而不是单纯的数据图表作业。因为它已经具备了数据预处理、指标计算、数据库支撑、前端图表和后端接口等多个模块,项目完整度比较高。完整资源中还包含数据文件、SQL 脚本、notebook、单页可视化结果和 Flask 大屏源码,适合继续二次开发。
每文一语
把每一次看似普通的数据整理,都做成能被看见、能被理解、能被继续生长的作品。
更多推荐


















所有评论(0)