You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何处理SQL交易数据以适配mlxtend的TransactionEncoder工具

问题解决方法

核心报错原因

TransactionEncoder要求的输入格式为嵌套列表结构,每一个子列表对应一笔交易的全部商品(和你测试用的dataset2格式完全一致)。你当前代码的问题出在拆分商品列时加了expand=True参数,得到的是多列宽表DataFrame,格式完全不匹配,遍历过程中会读取到整数型的列索引,最终抛出'int' object is not iterable报错。

具体修改方案

只需要调整商品列拆分的逻辑,不需要扩展为多列,直接生成每行对应一个商品列表的结构,同时过滤空值避免异常即可。

修改后的代码片段

将你原有代码中拆分商品列的部分替换为以下内容:

# 拆分逗号分隔的商品字符串,expand=False直接返回每行对应一个商品列表的Series
df4 = d["COMBO_VARIABLE_AGG"].str.split(", ", n=-1, expand=False)
# 过滤空值行,再转为嵌套列表格式,完全匹配TransactionEncoder的输入要求
dataset = df4.dropna().tolist()

修改后你可以先打印前3条数据验证格式:

print(dataset[:3])

输出格式应该和你测试用的dataset2完全一致,后续TransactionEncoder相关逻辑就可以正常运行。

内容的提问来源于stack exchange,提问作者user2790744

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 07:09:01