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

调用efficient_apriori时报numpy.ndarray与str不支持比较错误如何解决

错误原因

efficient_apriori的内部逻辑需要对项集中的元素做排序操作,要求所有项都是Python原生的字符串、数值等可比较的类型。你通过df.to_records()生成的记录是NumPy结构化数组类型,单条记录里的字段值也都是NumPy标量类型,和Python原生类型做比较时触发了类型不兼容的报错。

修复方案

替换原来将DataFrame转为事务列表的代码即可,修改后的处理逻辑如下:

df = pd.read_csv('covid_dataset.csv')
# 替换原来的to_records相关代码
result = []
for _, row in df.iterrows():
    # 将每一行值转为Python原生类型组成元组,这里统一转字符串避免不同字段类型不兼容问题
    transaction = tuple(row.astype(str).tolist())
    result.append(transaction)

如果需要保留原始数值类型,可使用下面的写法:

result = [tuple(map(lambda x: x.item() if hasattr(x, 'item') else x, row)) for row in df.to_records(index=False)]

补充说明:如果数据集存在缺失值,建议先做缺失值清洗(删除空值行/填充统一标识字符串),避免生成无意义的空值关联规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:36:04