我有兩個CSV文件(三列),我需要比較和提取匹配的其他文件(五列)的行。對於文件的例子是:比較從CSV文件的列中的條目,並提取匹配 - python
文件1:
ATGCGCGACAGT, ch3, 123546
ATGCATACAGGATAT, ch2, 5141561615
......等約100項
文件2:
ATGCGGCGACAGT,ch3, 123456,mi141515, AUCAGCUAUAUAU, UACGCAGAUAUAUA
ATCAGACGATTATGA, ch4, 4564764, mi653453, AUCAGCAAUUUUCG, AUACAGACAAAAA
....等約50000條目
我需要匹配列1,2和3的兩個文件這樣一種方式,所有三列file1應該與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
但有人告訴我,我可以使用散列或一些更好的方式文件1
而寫作10000多個條目這樣的大循環請建議我更好的辦法爲了達成這個。文件1和文件2都是從更復雜的文件中解析出來的。
你可以嘗試將數據加載到一些sqlite表中,然後將它們加入你想要的列。 – imm 2012-02-28 03:23:56