Pandas Bootcamp
首页特训项目关于开始学习
01
电商销售数据质检审计
入门
02
基于购物车的复购行为与商品关联预测
入门
03
RFM 模型与用户价值聚类分层
进阶
04
AIGC 训练语料库去偏与去噪
进阶
05
游戏玩家行为序列与留存漏斗分析
进阶
06
金融信贷反欺诈特征工程
高级
07
IoT 传感器时序数据异常检测
高级
08
多源数据融合与主数据治理
进阶
09
AI 数据质量监控与血缘追踪
高级
10
AI 辅助数据自动化分析与故事化报告
高级
返回首页
PROJECT 02入门

基于购物车的复购行为与商品关联预测

Shopping Cart Repeat Purchase Analysis

通过 groupby 聚合与特征构造,分析用户复购行为并预测商品关联购买概率。

groupby 聚合特征构造复购率计算关联分析pivot_table

项目背景

某生鲜电商平台希望提升用户复购率。通过分析用户购物车数据,识别高频复购商品组合,为精准推荐和促销活动提供数据支撑。

模拟数据集

user_id,product_name,category,purchase_date,quantity,price,is_repeat
U001,有机鸡蛋,生鲜,2024-01-05,2,29.9,False
U001,有机鸡蛋,生鲜,2024-01-19,2,29.9,True
U001,全麦面包,烘焙,2024-01-05,1,18.5,False
U001,全麦面包,烘焙,2024-01-22,1,18.5,True
U002,进口牛奶,乳品,2024-01-03,3,45.0,False
U002,进口牛奶,乳品,2024-01-17,3,45.0,True
U002,希腊酸奶,乳品,2024-01-10,2,35.8,False
U003,三文鱼,海鲜,2024-01-08,1,89.0,False
U003,三文鱼,海鲜,2024-01-22,1,89.0,True
U003,虾仁,海鲜,2024-01-08,1,55.0,False

代码练习区

在下方编辑器中编写你的 Pandas 代码。可记录笔记、编写伪代码,参考答案在下方。

pandas_exercise.py
Loading...

参考答案

reference_solution.py
import pandas as pd
import numpy as np

df = pd.read_csv('cart_data.csv')
df['purchase_date'] = pd.to_datetime(df['purchase_date'])

# 1. 用户维度聚合
user_stats = df.groupby('user_id').agg(
    total_orders=('product_name', 'count'),
    unique_products=('product_name', 'nunique'),
    total_spent=('price', lambda x: (x * df.loc[x.index, 'quantity']).sum()),
    repeat_rate=('is_repeat', 'mean'),
    avg_order_interval=('purchase_date', lambda x: (x.max() - x.min()).days / max(x.nunique() - 1, 1))
).reset_index()

# 2. 商品复购率
product_repeat = df.groupby('product_name').agg(
    total_purchases=('user_id', 'count'),
    repeat_purchases=('is_repeat', 'sum'),
    unique_buyers=('user_id', 'nunique')
).reset_index()
product_repeat['repeat_rate'] = product_repeat['repeat_purchases'] / product_repeat['total_purchases']

# 3. 商品关联分析 (共同购买矩阵)
cart_pairs = df.groupby(['user_id', 'purchase_date'])['product_name'].apply(list).reset_index()
# 构建共现矩阵...

# 4. 复购预测特征
df['days_since_first'] = (df['purchase_date'] - df['purchase_date'].min()).dt.days
df['is_weekend'] = df['purchase_date'].dt.dayofweek >= 5

业务解读

复购率是电商核心指标。生鲜品类天然具有高频复购特征,通过识别复购周期可以优化补货提醒推送时机。商品关联分析(购物篮分析)可用于 '猜你喜欢' 和凑单推荐,提升客单价。