← 返回首页

项目03:购物篮分析

学习处理购物篮数据,分析商品关联关系

📊 数据集预览

使用 market_basket 数据集,包含交易ID和商品组合信息。

market_basket.csv(前5行)

🎯 学习目标

  • 理解购物篮数据的结构
  • 学会处理字符串和列表数据
  • 计算商品出现频率
  • 分析商品组合模式
  • 提取和统计商品组合

📚 知识点讲解

什么是购物篮分析?

购物篮分析(Market Basket Analysis)是一种数据分析技术,用于发现顾客购买行为模式,特别是哪些商品经常一起被购买。

购物篮分析的应用场景:

  • 商品推荐:"购买了A的顾客也购买了B"
  • 货架摆放:将经常一起购买的商品放在邻近位置
  • 促销策略:捆绑销售、折扣组合
💡 小贴士:购物篮分析常使用关联规则挖掘算法,如Apriori算法

一、字符串处理基础

1.1 字符串拆分

使用 str.split() 将字符串拆分成列表,便于逐个处理商品。

# 拆分商品字符串
df['items_list'] = df['items'].str.split(',')

print(df[['transaction_id', 'items_list']].head())

1.2 字符串包含判断

使用 str.contains() 检查字符串是否包含特定内容。

# 查找包含 Bread 的交易
contains_bread = df[df['items'].str.contains('Bread', na=False)

print(f'包含 Bread 的交易数: {len(contains_bread)}')

1.3 统计字符串长度

通过拆分后的列表长度计算每笔交易的商品数量。

# 计算每笔交易的商品数量
df['item_count'] = df['items'].str.split(',').apply(len)

print(df[['transaction_id', 'item_count']].head())

二、商品频率统计

2.1 使用 Counter 统计频率

Python 的 collections.Counter 是统计频率的利器。

from collections import Counter

# 统计各商品出现次数
all_items = []
for items in df['items'].str.split(','):
    all_items.extend(items)

item_counts = Counter(all_items)

for item, count in item_counts.most_common():
    print(f'{item}: {count}次')

2.2 筛选高频商品

找出出现次数超过特定阈值的商品。

# 找出出现次数超过3次的商品
frequent_items = {item: count for item, count in item_counts.items() if count > 3}

print("高频商品:")
print(frequent_items)

三、商品组合分析

3.1 查找包含特定商品的交易

使用布尔索引筛选满足条件的交易。

# 查找同时包含 Bread 和 Milk 的交易
both = df[(df['items'].str.contains('Bread')) & 
        (df['items'].str.contains('Milk'))]

print(f'同时包含 Bread 和 Milk 的交易数: {len(both)}')

3.2 分析商品组合频率

统计商品组合的出现频率,发现关联关系。

# 统计商品组合频率
pair_counts = Counter()

for items in df['items'].str.split(','):
    for i in range(len(items)):
        for j in range(i+1, len(items)):
            pair = tuple(sorted([items[i], items[j]]))
            pair_counts[pair] += 1

print("商品组合频率:")
for pair, count in pair_counts.most_common(5):
    print(f'{pair}: {count}次')
💡 小贴士:使用 tuple(sorted()) 确保 {'A', 'B'} 和 {'B', 'A'} 被视为同一个组合

💻 代码实战

在下方代码编辑器中编写并运行完整的购物篮分析代码:

03-basket/main.py
点击"运行代码"按钮执行

💻 总代码运行框

在下方代码编辑器中编写并运行完整的购物篮分析代码:

03-basket/main.py
点击"运行代码"按钮执行