学习处理购物篮数据,分析商品关联关系
使用 market_basket 数据集,包含交易ID和商品组合信息。
先加载数据,熟悉数据结构。
了解数据规模,计算总交易数量。
将商品字符串拆分成列表,便于后续分析。
计算每个商品在所有交易中出现的频率。
统计每笔交易包含多少个商品。
筛选出包含特定商品的交易记录。
total = len(df) print(total)
df['items_list'] = df['items'].str.split(',') print(df.head())
df['item_count'] = df['items'].str.split(',').apply(len) print(df[['transaction_id', 'item_count']].head())
milk_transactions = df[df['items'].str.contains('Milk')] print(f'包含 Milk 的交易数: {len(milk_transactions)}')
from collections import Counter all_items = [] for items in df['items'].str.split(','): all_items.extend(items) item_counts = Counter(all_items) print(item_counts)
df['item_count'] = df['items'].str.split(',').apply(len) avg_count = df['item_count'].mean() print(f'平均每笔交易商品数: {avg_count}')
df['item_count'] = df['items'].str.split(',').apply(len) top3 = df.sort_values('item_count', ascending=False).head(3) print(top3)
both = df[(df['items'].str.contains('Bread')) & (df['items'].str.contains('Milk'))] print(f'同时包含 Bread 和 Milk 的交易数: {len(both)}')