Python读取数据构建关联规则
我有一个文本文件,里面有两列数据。我把它们读进Python,分别放到了两个列表里。我想做的是统计每一对出现的次数,并根据这些次数建立关联规则。
举个例子:
colA = [a,b,c,d,...]
colB = [c,y,d,e,...]
我目前只做到把数据读进两个列表,但接下来怎么统计出现的次数和建立规则呢?
代码:
pred = []
succ = []
for line in open('arsample.txt'):
lst = line.split('\t')
pred.append(int(lst[0]))
succ.append(int(lst[1]))
规则的样子会是这样的,并且是按出现次数从高到低排序的:
P S Probability
---------------------
a > c count(a>c)/n
... ...
2 个回答
0
你可以用一个 字典
来创建一个映射关系:
mapping = {}
for key in colA:
mapping[key] = colB.index(key)
要计算出现的次数,只需使用 .count()
方法:
colA.count('a')
注意,如果 colB
中有两个元素名字相同,这个映射关系就会出问题。因为你试图在两个不唯一的集合之间建立一一对应的关系,这样是行不通的。可以想象一下,就像从 x^2
中恢复输入的数字一样,你根本不知道。
0
来看一下 集合:
http://docs.python.org/library/sets.html
它们允许这样做:
>>> a = [1,2,2,5,4,5,4,2,1,3]
>>> set(a)
set([1, 2, 3, 4, 5])
>>>
所以你可能需要在一个字符串列表中构建这些配对...
希望这能帮到你。