【发布时间】:2011-05-14 19:18:02
【问题描述】:
嗨 我有两个 CSV 文件作为输入,例如:
文件1:
AK163828 chr5 s1 + e1 cttt 4
AK163828 chr5 s2 + e2 gtca 4
AK168688 chr6 s3 + e3 ggcg 4
AK168688 chr6 s4 + e4 tctg 4
文件2:
chr6s3+e3 ggcg
chr5s1+e1 cttt
chr6s4+e4 tata
chr5s2+e2 ggcg
#as you can see the file2 is randomly sorted
我想将 file2 的第 1 列与 file1 的第 2、3、4、5 列合并,同时将 file2 的第 2 列与文件 1 的第 6 列进行比较,并且只选择匹配的行。
想要的输出是
chr6s3+e3 ggcg
chr5s1+e1 cttt
我尝试使用此代码:
import csv
reader1 = csv.reader(open(file1), dialect='excel-tab' )
reader2 = csv.reader(open(file2), dialect='excel-tab' )
for row1, row2 in zip(reader1,reader2):
F1 = row1[1] + row1[2] + row1[3] + row1[4] + '\t' row1[5]
F2 = row2[0] + '\t' + row2[1]
print set(F1) & set(F2)
但它不起作用。你能帮我修复我的代码或给我其他方法吗? 感谢您的帮助!
【问题讨论】:
-
biostar 是提出这个问题的好地方 ;-) biostar.stackexchange.com
-
@Pierre 是的,我知道,但我更喜欢从这里开始问,因为这个问题是针对代码的,我相信这里有更多的人知道编程。
标签: python csv compare bioinformatics