2011-11-08 12 views
1

私はテキストファイルに2つの列を持っています。私はそれらをPythonに2つの別々のリストとして読んでいます。私がしたいことは、各ペアの発生をカウントし、それに基づいて関連ルールを構築することです。python読み込みデータ構築関連ルール

例:

colA = [a,b,c,d,...] 

colB = [c,y,d,e,...] 

私は2つのリストにデータを読み取るためにのみ、これまで来たが、発生箇所をカウントし、ルールを構築するための最良の方法は何ですか?

コード:

pred = [] 
succ = [] 
for line in open('arsample.txt'): 
    lst = line.split('\t') 
    pred.append(int(lst[0])) 
    succ.append(int(lst[1])) 

ルールは次のようになりますし、降順にソートされます:あなたはマッピングを作成するためにdictionaryを使用することができます

P S Probability 
--------------------- 
a > c count(a>c)/n 
...  ... 
+0

あなたがしようとしていることは明確ではありません。あなたが与えたサンプルデータで、期待される結果は何ですか? – unholysampler

答えて

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]) 
>>> 

ですから、文字列のリストでペアを構築する必要があります、私は推測する...

希望すると助かります。

+0

良い見えますが、まだペアの数が必要です。そうでなければ確率を計算できません。 – user366121

+0

それからitertoolsの方がいいでしょう:itertoolsからimport groupby:あなたにセットと数を渡します。 – Louis

0

を:

mapping = {} 

for key in colA: 
    mapping[key] = colB.index(key) 

をカウントするには出現回数は.count()

colA.count('a') 

colBに同じ名前の2つの要素がある場合、マッピングが中断されることに注意してください。これは、2つの固有ではないセットの間で双射を作成しようとしているためです。これは機能しません。それはx^2からの入力番号を回復するように考えてください。あなたは知らない。

+0

colBには同じ名前の要素があるため、これは問題です。 – user366121

+0

マッピングを構築することはできません。 – Blender

関連する問題