电商订单明细 · 业务健康度 + 用户价值 分析流水线
适用于单表逐行订单数据(列通常含:InvoiceNo, StockCode, Description, Quantity, InvoiceDate, UnitPrice, CustomerID, Country)。输出一份自包含 HTML 报告。
环境
- 用 managed Python 建 venv:
.../binaries/python/versions/X/python.exe -m venv .../envs/default,再装pandas numpy scipy openpyxl plotly。 - 未装 pyarrow 时
df.to_parquet会报错 → 用try/except退化到to_csv。
关键字段语义(先建数据字典,标注不确定点)
- InvoiceNo:6位;C 开头 = 取消/退货单(Quantity 多为负、金额为负)。
- Quantity/UnitPrice 可为负或 0(调整项/错误录入),Revenue = Quantity×UnitPrice。
- CustomerID 常大量缺失(线下/批发/无注册),缺失行无法做用户级分析。
- 粒度 = 发票×商品行;无单一主键,候选复合键 (InvoiceNo, StockCode, InvoiceDate) 但重复导入会破坏唯一性。
质量审计 → 清洗规则清单(每条含:原因/影响面/可回滚策略)
统计项:缺失率、取消单数、Quantity 负/零/极端(>99.9分位)、UnitPrice ≤0、完全重复、逻辑重复(InvoiceNo+StockCode+Qty+Price+Date)、国家分布、时间边界。
分析基(analysis base) 建议口径:CustomerID 非空 & 非取消 & Quantity>0 & UnitPrice>0 & 去逻辑重复。每条规则保留标记列以便回滚(如 IsCancel/dup_flag/extreme_flag)。
月度核心指标
GMV(剔除取消单)、订单数(去重 InvoiceNo)、客单价 AOV=GMV/订单、活跃买家(去重 CustomerID)、月内复购率(同月≥2张发票客户占比)、取消单占比(取消发票/总发票)。
用 Plotly:make_subplots(secondary_y=True) 做双轴趋势;histogram 看 Quantity/UnitPrice 分布(截尾+log);bar 看 Top 国家/商品。
RFM 分群
- 快照日 = 最大 InvoiceDate + 1 天。R=距末次交易天数(反向打分),F=去重发票数,M=累计GMV。
- 用五分位 qcut(数据右偏、无既定阈值);R/F/M 各 1–5,2×2×2 简化映射为 6~8 个运营可直接落地的分群。
- 输出分群规模 + 收入占比表。
Cohort LTV(简化版)
- 每位客户首购月 = cohort;CohortIdx = 订单月 − 首购月(用
pd.PeriodIndex(...).astype("int64")相减,不要.apply(lambda x:x.n),会 AttributeError)。 - 透视得各 cohort×offset 的 GMV 与 客户数,人均累计 LTV = cumsum(Revenue/客户数)。
- 局限:数据仅 13 个月,晚 cohort 右端空白多,跨 cohort 直接比较需谨慎;未折现。
异常检测
月度 GMV/订单数序列用稳健 Z-score(0.6745*(x-med)/MAD)标 |z|>2;日级 GMV 标 |z|>3。对异常点给"可能原因假设 + 验证方法"(季节性/边界不完整月/批量导入/超大单)。
报告拼装(避免踩坑)
- 图表:
fig.to_html(full_html=False, include_plotlyjs=False),在 HTML<head>手动放一次https://cdn.plot.ly/plotly-2.35.2.min.js(离线打开需联网)。 - 把计算结果(指标/审计/规则/分群/cohort/异常)先 dump 成
analysis_outputs.json,报告脚本单独读取,与重计算解耦。 - 建议字符串不要在 f-string 里留
{x}之类的占位符(会 NameError);先算好变量再拼接。 - 报告脚本记得
import pandas as pd并pd.DataFrame(O["seg_summary"])(JSON 里是 dict 不是 DataFrame)。
交付
结构化 HTML:Executive Summary(KPI 卡) + 数据字典 + 质量审计&清洗规则 + 月度看板 + RFM + Cohort LTV + 异常 + 5 条建议(每条含预期收益指标/验证实验设计/风险点)。用 present_files 交付。
反馈与评分
如果本技能帮你节省了时间、解决了问题,欢迎到 SkillHub 为它打分(搜索对应 slug 即可)。你的评分是我持续迭代、补充场景的动力。
微信扫一扫