作者:成都理工大学工程技术学院 李尚儒 (13708100037)
一个功能强大的零售数据分析工具,专为电商和零售企业设计,提供全面的数据清洗、分析和可视化功能。
- 智能数据清洗:自动识别和处理缺失值、异常值、重复记录
- 现代化可视化:使用 Plotly 和 Seaborn 创建交互式图表
- 电商业务分析:RFM客户分析、季节性分析、促销效果评估
- 实时仪表盘:基于 Streamlit 的交互式数据仪表盘
- 多格式支持:支持 CSV、Parquet、Excel 等数据格式
- 时间维度:日度、月度、季度趋势分析
- 渠道维度:线上线下渠道对比分析
- 产品维度:品类、品牌、SKU 表现分析
- 客户维度:RFM 分析、客户生命周期价值
- 营销维度:促销效果、折扣分析、价格弹性
- Python 3.8+
- 推荐使用虚拟环境
pip install -r requirements.txt# 运行完整分析
python scripts/eda_run.py
# 启动交互式仪表盘
streamlit run app_dashboard.py- 将数据文件放入
data_raw/目录 - 修改
config.yml中的文件路径和字段映射 - 运行分析脚本
retail_eda_project/
├── scripts/ # 核心分析脚本
│ ├── eda_run.py # 主分析脚本
│ ├── utils.py # 工具函数
│ ├── visualization.py # 现代化可视化模块
│ └── business_analytics.py # 电商业务分析模块
├── data_raw/ # 原始数据
│ └── sample_data.csv
├── data_clean/ # 清洗后数据
│ ├── cleaned.csv
│ └── cleaned.parquet
├── charts/ # 图表输出
│ ├── *.png # 静态图表
│ └── *.html # 交互式图表
├── exports/ # 分析结果
│ ├── rfm_analysis.csv # RFM分析结果
│ ├── clv_analysis.csv # 客户生命周期价值
│ └── *.csv # 其他分析结果
├── reports/ # 分析报告
│ └── data_quality_report.html
├── lookup_maps/ # 数据映射文件
│ ├── channel_map.csv
│ ├── brand_map.csv
│ └── category_*.csv
├── config.yml # 配置文件
├── app_dashboard.py # Streamlit仪表盘
└── requirements.txt # 依赖包列表
input_file: data_raw/sample_data.csv # 数据文件路径
date_column: order_date # 日期字段
id_columns: ["order_id","sku"] # 主键字段text_columns:
channel: channel
brand: brand
category_L1: category_L1
category_L2: category_L2
qty: sales_qty
net_sales: sales_amt
discount: discount_amt
cost: cost_amtmodern_charts: # 现代化图表
sales_trends_interactive: true
customer_behavior_analysis: true
product_performance: true
business_analytics: # 业务分析
rfm_analysis: true
seasonality_analysis: true
promotion_effectiveness: true- 缺失值处理:自动识别并报告缺失值分布
- 异常值检测:识别负值、零值、异常折扣等
- 重复记录:检测并导出重复的订单记录
- 数据标准化:统一文本格式、日期格式
- 基础指标:订单数、销售额、客单价、折扣率
- 高级指标:GMV、毛利率、库存周转率
- 电商指标:转化率、复购率、客户生命周期价值
- RFM分析:基于最近购买、购买频次、购买金额的客户分层
- 客户生命周期价值:量化客户长期价值
- 客户行为分析:购买模式、偏好分析
- 品类表现:各品类销售占比、增长趋势
- 品牌分析:品牌销售排行、市场份额
- 价格分析:价格分布、价格弹性、折扣效果
- 季节性分析:识别销售的季节性模式
- 趋势分析:日度、月度、季度销售趋势
- 周期性分析:工作日vs周末、高峰时段分析
- 交互式图表:支持缩放、筛选、悬停显示详情
- 专业配色:采用现代化配色方案
- 多格式输出:PNG、HTML、PDF 等格式
- 响应式设计:适配不同屏幕尺寸
- 趋势图:时间序列分析
- 分布图:数据分布特征
- 对比图:多维度对比分析
- 热力图:相关性分析
- 仪表盘:关键指标监控
基于 Streamlit 的现代化仪表盘,提供:
- 实时筛选:按时间、渠道、品类等维度筛选
- 动态更新:筛选条件变化时自动更新图表
- 多维度分析:从不同角度分析数据
- 数据导出:支持图表和数据导出
系统自动生成关键业务洞察:
- 主要销售渠道和品类
- 客户价值分布
- 促销效果评估
- 数据质量状况
- 业务增长机会
- 完整性检查:缺失值统计和分布
- 准确性验证:异常值检测和标记
- 一致性检查:数据格式统一性
- 业务规则验证:折扣率、毛利率等业务逻辑检查
- 在
business_analytics.py中添加计算方法 - 在
eda_run.py中调用新方法 - 更新配置文件
- 在
visualization.py中添加图表方法 - 在
ModernVisualizer类中注册新图表 - 更新配置文件
- 修改
load_input函数 - 更新字段映射配置
- 调整数据清洗逻辑
from scripts.eda_run import run
# 运行完整分析
results = run()
# 查看结果
print(f"生成了 {len(results['charts'])} 个图表")
print(f"业务洞察: {results['business_insights']}")from scripts.business_analytics import EcommerceAnalytics
import pandas as pd
# 加载数据
df = pd.read_csv('data_clean/cleaned.csv')
# 创建分析实例
analytics = EcommerceAnalytics(df, config)
# 计算RFM指标
rfm_analysis = analytics.calculate_rfm_metrics()
# 生成业务洞察
insights = analytics.generate_business_insights()欢迎提交 Issue 和 Pull Request!
- Fork 项目
- 创建功能分支
- 提交更改
- 创建 Pull Request
本项目采用 MIT 许可证。
如有问题或建议,请:
- 查看文档和示例
- 提交 Issue
- 联系作者
- QQ:3035326878
- 邮箱:3035326878@qq.com
- 电话:13708100037
让数据驱动零售业务决策! 🚀





















