私は、比較する必要があり、一致する他のファイル(5列)から行を抽出する必要がある2つのCSVファイル(3列)があります。ファイルのための例は以下のとおりです。CSVファイルから列のエントリを比較し、一致したPythonを抽出します
はFile1:
ATGCGCGACAGT, ch3, 123546
ATGCATACAGGATAT, ch2, 5141561615
......ように、約100エントリ
File2の:
ATGCGGCGACAGT,ch3, 123456,mi141515, AUCAGCUAUAUAU, UACGCAGAUAUAUA
ATCAGACGATTATGA, ch4, 4564764, mi653453, AUCAGCAAUUUUCG, AUACAGACAAAAA
....約上のように、 50000 entries
私はfile1の3つの列すべてが同じように両方のファイルの列1,2,3と一致する必要がありますfile2と一致する必要があります。このような場合は、さらに処理するために4,5および6列を抽出します。
私が考えていた:
fhout=csv.writer(open('parsed_out', 'w'), delimiter=',')
for i in file1:
a=[0]
b=[1]
c=[2]
for x in file2:
d=[0]
e=[1]
f=[2]
g=[3]
h=[4]
i=[5]
if a==d and b==e and c==f:
fhout.writerow([g]+[h]+[i])
else:
pass
しかし、誰かが私より良い方法を提案してください、私はハッシュかというfile1の
で10,000以上のエントリのような大きなループを書いて、いくつかのより良い方法を使用することができることを教えてくれましたこれを達成する。ファイル1とファイル2の両方がより複雑なファイルから解析されます。
いくつかのsqliteテーブルにデータをロードしてから、必要な列にそれらを結合することができます。 – imm