最近在读Python数据分析与挖掘实战发现《中医证型关联规则挖掘》中Apriori关联规则
通过百度发现来自苏剑林《用Pandas实现高效的Apriori算法》一文,书中代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| from __future__ import print_function import pandas as pd from apriori import * import time inputfile = '../data/apriori.txt' data = pd.read_csv(inputfile, header=None, dtype = object) start = time.clock() print(u'\n转换原始数据至0-1矩阵...') ct = lambda x : pd.Series(1, index = x) b = map(ct, data.as_matrix()) data = pd.DataFrame(b).fillna(0) end = time.clock() print(u'\n转换完毕,用时:%0.2f秒' %(end-start)) del b support = 0.06 confidence = 0.75 ms = '---' start = time.clock() print(u'\n开始搜索关联规则...') find_rule(data, support, confidence, ms) end = time.clock() print(u'\n搜索完成,用时:%0.2f秒' %(end-start))
|
其中data = pd.DataFrame(b).fillna(0)
会出现无法迭代的错误出现,查看原文是map后需要list转换成列表模型,才可以迭代,故应该更正为data = pd.DataFrame(list(b)).fillna(0)
特别记录给后来人方便
开始以为本书是抄袭,后来发现博主就是作者之一,造成的负面影响非常抱歉