基于 Python 的汽车市场数据分析与可视化平台

基于 Python 的汽车市场数据分析与可视化平台

项目简介

本平台是一个基于 Python Flask 框架的汽车市场数据分析与可视化系统,整合了多个真实汽车市场数据集,提供数据概览、车辆检索、多维分析、价格预测、品牌对比、技术规格分析、销量统计等功能模块,适用于汽车市场趋势研究和二手车价格预测场景。

所有数据源的价格在导入时已按汇率统一转换为人民币(CNY),确保跨数据集价格可比。


功能模块

模块 功能说明
数据概览 展示市场核心 KPI 指标(挂牌总量、平均价格、品牌数、平均里程),年度均价趋势折线图、燃料类型分布饼图、热门品牌 TOP10 柱状图、价格区间分布柱状图
车辆数据 支持多条件(关键词、数据源、品牌、燃料、变速箱、车型、年份范围、价格范围)组合检索与分页浏览,提供车辆详情查看与 CSV 导出功能
多维分析 品牌均价与挂牌量组合图、燃料类型均价对比、地区分布 TOP20、数值字段相关性热力图、品牌分析明细表格
价格预测 基于随机森林回归模型的二手车价格预测,展示模型评估指标(MAE、RMSE、R²)、特征重要性 TOP15 图表、相似车辆参考
品牌对比 多品牌选择对比分析,展示平均价格对比图、挂牌量对比图、对比明细表格
技术规格 基于 UCI Automobile 数据集的厂商均价分析、车身类型均价饼图、马力 vs 城市油耗 vs 价格散点气泡图
销量统计 厂商总销量排行、车型类别销量饼图、热销车型 TOP20 排行表格
系统管理 管理员专属页面,展示模型信息与评估指标、系统数据概览、已导入数据源列表,支持一键重新训练价格预测模型

数据来源

所有数据均为真实公开数据集,非 Mock 生成。原始价格已按汇率统一转换为人民币(CNY):

数据集 文件 记录数 原始货币 说明
Cars24 二手车市场 cars_24.csv ~8000 条 INR→CNY 来自 Cars24.com 的印度二手车挂牌数据,含价格、里程、燃料、变速箱、地区等
美国二手车交易 usedcars.csv ~150 条 USD→CNY 美国市场二手车样本,含年份、价格、里程、颜色、变速箱
UCI Automobile 规格 automobile.csv ~200 条 USD→CNY 1985年进口汽车技术规格数据,含发动机参数、油耗、价格等
厂商销量统计 car_sales.csv ~150 条 USD→CNY 各品牌车型销量、保值率、价格、马力等统计数据

汇率常量(定义在 config.py):

  • INR_TO_CNY = 0.084(1 印度卢比 ≈ 0.084 人民币)
  • USD_TO_CNY = 7.2(1 美元 ≈ 7.2 人民币)

标准版目录结构

复制代码
python-car-fenxi/
├── app.py                    # Flask 应用主入口,路由定义与 API 接口
├── config.py                 # 应用配置模块(数据库路径、密钥、汇率、分页参数)
├── requirements.txt          # Python 依赖包清单
├── data/
│   ├── automotive.db         # SQLite 数据库文件(自动生成)
│   └── raw/                  # 原始 CSV 数据集
│       ├── automobile.csv
│       ├── car_sales.csv
│       ├── cars_24.csv
│       └── usedcars.csv
├── database/
│   ├── __init__.py           # 数据库模块导出
│   └── db.py                 # SQLite 连接管理与会话工具
├── scripts/
│   ├── __init__.py
│   └── init_database.py      # 数据库初始化、建表、CSV 数据导入(含汇率转换)
├── services/
│   ├── __init__.py           # 服务模块导出
│   ├── analysis_service.py   # 数据分析业务逻辑(统计、检索、导出、对比)
│   └── ml_service.py         # 机器学习服务(模型训练、预测、指标查询)
├── static/
│   ├── css/
│   │   └── style.css         # 自定义样式
│   └── js/
│       ├── admin.js          # 系统管理页交互
│       ├── analysis.js       # 多维分析页图表
│       ├── cars.js           # 车辆数据页检索与分页
│       ├── common.js         # 全局工具函数
│       ├── comparison.js     # 品牌对比页交互
│       ├── dashboard.js      # 数据概览页图表
│       ├── prediction.js     # 价格预测页交互
│       ├── sales.js          # 销量统计页图表
│       └── specs.js          # 技术规格页图表
├── templates/
│   ├── admin.html            # 系统管理页
│   ├── analysis.html         # 多维分析页
│   ├── base.html             # 基础模板(导航栏、CDN 引用)
│   ├── car_detail.html       # 车辆详情页
│   ├── cars.html             # 车辆数据页
│   ├── comparison.html       # 品牌对比页
│   ├── dashboard.html        # 数据概览页
│   ├── login.html            # 登录页
│   ├── prediction.html       # 价格预测页
│   ├── register.html         # 注册页
│   ├── sales.html            # 销量统计页
│   └── specs.html            # 技术规格页
├── tests/
│   ├── __init__.py
│   └── test_api.py           # API 集成测试
├── trained_models/
│   └── price_predictor.joblib # 训练完成的模型文件(自动生成)
├── 运行步骤必看/
│   └── window.md             # Windows 运行步骤说明
├── mac_run.sh                # macOS/Linux 一键启动脚本
├── window_run.bat            # Windows 一键启动脚本
├── 训练手册.md                # 模型训练手册
└── README.md                 # 项目简介

技术栈

类别 技术
后端 Python 3.12 + Flask 3.0
数据库 SQLite 3
前端 HTML5 + Bootstrap 5.3 + Chart.js 4.4
机器学习 scikit-learn 1.5(随机森林回归)
数据处理 pandas 2.2 + numpy 1.26
模型持久化 joblib 1.4
密码安全 Werkzeug pbkdf2:sha256

环境要求

项目 要求
Python 3.12
操作系统 Windows / macOS / Linux
内存 建议 2GB 以上(模型训练时使用)
磁盘 约 500MB(含依赖和数据库)
浏览器 Chrome / Firefox / Safari / Edge 现代版本

账号信息

角色 用户名 密码
管理员 admin admin123

管理员拥有系统管理页面访问权限,可查看模型指标、数据源信息和重新训练模型。新注册用户默认为普通用户角色。

相关推荐
会飞锦鲤11 分钟前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm
starrysky8101 小时前
zipfile 中文乱码修复:把已知 GBK 旧 ZIP 解压到正确中文目录
python
用户91294046848421 小时前
Codex 从零到能交付(09):让 Codex 写有用的测试,而不是只测成功路径
python
2601_967987371 小时前
Debian如何配置Python调试工具
python·debian·pdb·调试工具·ipdb
MoRay1 小时前
放弃云端 Computer Use,我用 Python 手搓了一个带“物理防呆”的本地 GUI Agent 底座
python·github
青少儿编程课堂3 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:Bellman-Ford与SPFA含负权最短路及负环检测全解析
c++·python·算法·bfs·信息学竞赛
小小张说故事3 小时前
Python 的 __init__ 到底是不是构造函数?拆开 __new__ 先造对象、那次被跳过的初始化和必须返回 None 的规矩
python
拖累斯3 小时前
Jenkins + Python 全自动跑通「禅道任务/BUG 导出 → 月度开发考核表」
python·jenkins·bug
乌鲁木齐德润恒圣信息科技有限公司4 小时前
新能源车贴膜怎么选:全景天幕、超大前挡、传感器多
汽车