【发布时间】:2014-07-30 20:02:14
【问题描述】:
我一直在寻找顺序模式挖掘的 python 实现,但找不到任何东西。
我有一个包含以下数据的csv文件(注意:第一列是重量,第二列是A,B,C)-图片如下:
1 A,B,C
5 D,E,F,X,Z
6 P,Q,R
1 A,B,C,F
2 D,P,Q
4 E,X,R
1 W,Y
2 A,C,P,D,B
3 R,W,Y
基本上,我想知道某个组合出现了多少次。我想要以下内容:
- CSV 文件中每个序列(例如 A、B、C -- 顺序和位置无关紧要)的最大出现次数。
在上述文件中,A,B,C 序列例如出现 3 次。所以我的预期输出是 A,B,C,3 (我希望输出看起来像这样)。它应该检查 csv 文件中的所有序列。所以它应该检查 A,然后是 b,然后是 A,B,然后是 C,然后是 A,B,C 等。它应该检查 CSV 中的任何内容,而不是给出 A-Z 字母的组合。
我使用组合来实际发出 1、2、3、4 组合。
alphabet = frozenset(combination(ListofAlphabet, 3)) #three combinations. List is from A-Z
for row in fileread:
if alphabet.issubset(row[1]):
output += 1
print '{},{}'.format(alphabet, output)
但它没有给出 CSV 中出现序列的最大数量,因为我手动将组合作为输入。那么如何才能在 CSV 文件中为每个序列(例如 A、B、C——顺序和位置无关紧要)最大出现次数?
【问题讨论】:
-
使用
collections.Counter对象。 -
您的文件实际上是这样的吗,例如带有空格的
1 A,B,C?如果是这样,那么它不是 CSV 文件。 -
@user1825440:你能把它编辑成看起来像你的真实文件吗?只是为了排除不兼容。