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

关联规则结果输出格式调整及pandas处理代码逻辑详解

问题原因说明

你当前遇到的重复输出问题,核心原因是DataFrame创建和打印代码被放在了for循环内部,每处理1条关联规则就会生成并打印一次当前累加的DataFrame,最终出现多次重复输出的情况。

原代码逻辑详解

现有代码的运行逻辑拆分如下:

  • 初始化空列表results,用于存储所有关联规则的格式化数据
  • 遍历关联规则挖掘的输出结果association_results,对每条规则做如下处理:
    • 取出规则对应的商品组合,拆分得到前件、后件两个商品,存入value0、value1
    • 取出该规则的支持度(Support),截取前7位字符串存入value2
    • 取出该规则的置信度(Confidence),截取前7位字符串存入value3
    • 取出该规则的提升度(Lift),截取前7位字符串存入value4
    • 将上述5个值拼接为元组,追加到results列表中
  • 错误逻辑:表头定义、DataFrame生成、打印操作被放在了for循环内部,每处理完1条规则就执行一次,导致重复输出。
调整后的正确代码

只需将DataFrame生成和打印的逻辑移动到for循环外部即可,修改后代码如下:

import pandas as pd

results=[]
for item in association_results:
    pair = item[0]
    items = [x for x in pair]
    
    value0 = str(items[0])
    value1 = str(items[1])
    value2 = str(item[1])[:7]
    value3 = str(item[2][0][2])[:7]
    value4 = str(item[2][0][3])[:7]
    
    rows = (value0,value1,value2,value3,value4)
    results.append(rows)

# 以下逻辑移到循环外部
Labels =['Title1','Title2','Support','Confidence','Lift']
store_suggestion = pd.DataFrame.from_records(results,columns=Labels)
print(store_suggestion)
可选优化建议

如果需要更规范的数值格式控制,不需要提前把支持度、置信度、提升度转成字符串截取,可以直接通过pandas全局设置控制小数显示位数,示例如下:

pd.set_option('display.float_format', lambda x: '{:.5f}'.format(x))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:36:03