一、实际应用场景描述
在零售与电商业务中,常存在一种普遍假设:
“价格越低,商品越好卖。”
运营人员往往通过不断压低单价来提升销量。
但在真实业务数据中,销量 ≠ 持续盈利能力。
尤其在快消品、日用品领域,复购率(Repeat Purchase Rate) 往往是比单次销量更关键的指标。
本项目构建一个简化的商品–订单分析模型,通过 Python 对以下维度进行对比:
- 不同价格区间的商品
- 销量 vs 复购率
- 低价产品的长期留存表现
从而在数据层面检验:
低价策略是否真的能带来可持续的商业成功?
二、引入痛点
在实际经营或课程案例中,常见问题包括:
1. 指标单一化只看销量或 GMV,忽略复购与用户生命周期价值(LTV)。
2. 低价陷阱低价吸引一次性用户,但难以形成二次购买。
3. 缺乏数据验证决策依赖经验,而非结构化数据分析。
三、核心逻辑讲解
核心思想(BI 视角)
我们将商品与订单抽象为两张逻辑表:
- 商品表:商品ID、品类、定价
- 订单表:订单ID、用户ID、商品ID
分析路径:
1. 按价格区间分组(低价 / 中价 / 高价)
2. 统计:
- 购买人数
- 复购人数
- 复购率 = 复购人数 / 购买人数
3. 对比不同价格区间的复购表现
预期分析结论(理论层面)
- 低价区间:
- 购买人数多
- 复购率低
- 中高价区间:
- 购买人数较少
- 复购率明显更高
四、代码模块化实现(Python)
项目结构
price_repurchase_analysis/
│
├── data.py # 数据定义
├── analysis.py # 核心分析逻辑
├── report.py # 结果输出
└── main.py # 程序入口
1️⃣ data.py(数据结构)
"""
数据模块
模拟商品与订单数据
"""
def load_products():
"""
商品表
- product_id: 商品ID
- price: 单价
"""
return [
{"product_id": 1, "price": 9.9},
{"product_id": 2, "price": 15.0},
{"product_id": 3, "price": 49.0},
{"product_id": 4, "price": 89.0},
]
def load_orders():
"""
订单表
- order_id: 订单ID
- user_id: 用户ID
- product_id: 商品ID
"""
return [
{"order_id": 1, "user_id": 101, "product_id": 1},
{"order_id": 2, "user_id": 102, "product_id": 1},
{"order_id": 3, "user_id": 101, "product_id": 1}, # 复购
{"order_id": 4, "user_id": 103, "product_id": 3},
{"order_id": 5, "user_id": 103, "product_id": 3}, # 复购
{"order_id": 6, "user_id": 104, "product_id": 4},
{"order_id": 7, "user_id": 104, "product_id": 4}, # 复购
]
2️⃣ analysis.py(核心分析逻辑)
"""
分析模块
计算价格区间与复购率
"""
from collections import defaultdict
def classify_price(price):
if price < 20:
return "low"
elif price < 60:
return "mid"
else:
return "high"
def analyze_repurchase(products, orders):
"""
按价格区间统计复购率
"""
price_map = {p["product_id"]: p["price"] for p in products}
# 每个用户购买每个商品的次数
purchase_count = defaultdict(lambda: defaultdict(int))
for order in orders:
uid = order["user_id"]
pid = order["product_id"]
purchase_count[uid][pid] += 1
# 按价格区间统计
stats = defaultdict(lambda: {"buyers": set(), "repurchasers": set()})
for user, products in purchase_count.items():
for pid, count in products.items():
price_level = classify_price(price_map[pid])
stats[price_level]["buyers"].add(user)
if count > 1:
stats[price_level]["repurchasers"].add(user)
result = {}
for level, data in stats.items():
buyers = len(data["buyers"])
repurchasers = len(data["repurchasers"])
rate = repurchasers / buyers if buyers else 0
result[level] = {
"buyers": buyers,
"repurchasers": repurchasers,
"repurchase_rate": rate
}
return result
3️⃣ report.py(结果输出)
"""
报告模块
输出复购分析结果
"""
def print_report(stats):
print("===== 商品价格区间复购率分析 =====")
for level, data in stats.items():
label = {
"low": "低价区 (<20)",
"mid": "中价区 (20-60)",
"high": "高价区 (>60)"
}.get(level, level)
print(f"\n[{label}]")
print(f" 购买人数:{data['buyers']}")
print(f" 复购人数:{data['repurchasers']}")
print(f" 复购率:{data['repurchase_rate']:.2%}")
4️⃣ main.py(程序入口)
"""
主程序入口
"""
from data import load_products, load_orders
from analysis import analyze_repurchase
from report import print_report
def main():
products = load_products()
orders = load_orders()
stats = analyze_repurchase(products, orders)
print_report(stats)
if __name__ == "__main__":
main()
五、README 文件(示例)
# 价格与复购率分析示例项目
## 项目简介
本项目使用 Python 构建一个简化商务智能分析示例,
用于探讨商品价格与复购率之间的关系。
## 运行环境
- Python 3.8+
- 无需第三方库
## 使用方法
bash
python main.py
## 适用场景
- 商务智能课程案例
- 零售数据分析入门
- 定价策略讨论
## 注意事项
本数据为示例数据,仅用于教学与逻辑演示。
六、核心知识点卡片(课程向)
模块 对应知识点
data.py 实体–关系建模
analysis.py 分组统计、复购率计算
report.py 数据结果呈现
业务逻辑 价格分层、复购行为分析
BI思维 单一指标 vs 多维指标体系
七、总结
通过该示例程序可以得出一个基于数据的理性认知:
- 销量 ≠ 复购
- 低价策略可能带来短期成交,但未必带来长期用户价值
- 商务智能的价值在于:用结构化数据揭示隐藏在“常识”背后的业务真相
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!