我有两个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