pandas + matplotlib 电商数据可视化实战:12050 行清洗到六维图表与真实统计报告
数据可视化的教程普遍卡在两头:要么用干净的示例 CSV 五行出图,学不到清洗;要么只贴图不讲每张图回答什么问题。这个实战项目跑通完整链路——生成 12050 行含脏数据的电商订单,清洗后出六维图表和分析报告,所有数字是真实统计出来的,固定随机种子,一条命令可复现。
一、实测统计
原始数据 12050 行(含空值/重复/负额三类脏数据) 清洗后 11950 行有效 总销售额 574.6 万元 峰值月份 11 月 全局客单价 481 元清洗规则:空值行丢弃、重复订单去重、负额(退货冲销)单独识别——三类脏数据各占约 0.3%~0.5%,真实业务数据里就是这个量级。
二、六维图表各答一问
| 图表 | 维度 | 回答的问题 |
|---|---|---|
| 月度趋势折线 | 销售额时间线 | 生意在涨还是跌 |
| 品类占比饼图 | 销售额份额 | 钱从哪来 |
| 商品排行条形 | Top10 销量 | 头部集中度 |
| 转化漏斗 | 浏览→成交 | 哪一环流失最多 |
| 双热力图 | 地域/时段 | 在哪投资源 |
每张图都在报告里配了文字结论——图表不配结论就只是装饰。
二点五、清洗规则明细
df=df.dropna(subset=['order_id','amount'])# 空值丢弃df=df.drop_duplicates(subset='order_id')# 重复订单去重refund=df[df['amount']<0]# 退货冲销单独识别df=df[df['amount']>0]三类脏数据各占 0.3%~0.5%,比例刻意贴近真实电商数据——太干净学不到东西,太脏又偏离主旨。退货单独成表后可以顺带算退货率,报告里多出一个补充结论。
三、三步复现
pipinstallpandas matplotlib python generate_data.py# 生成 12050 行确定性订单数据python analyze_visualize.py# 清洗 + 6 张图 + 分析报告.mdgenerate_data.py 用固定随机种子造数据(含脏数据注入),所以任何人跑出的数字都和上文一致;换成自己的 orders.csv 替换后整条链路照跑,代码不用改。
四、这套练手的适用面
适合三种场景:数据分析课程设计(有数据、有图、有报告三件套)、pandas 入门后的第一个综合练习(groupby/透视表/时间序列全都用上)、以及作为「清洗→统计→可视化→结论」方法论的最小完整样例。分析报告.md 是用代码生成的——统计数字写进报告而不是手敲,这是可复现的关键。
📦 本文对应的完整工程(数据+分析+6 图)已整理上传:点击查看资源包