我还有一个python新手的问题。我有一个如下所示的文件。我需要把它转换成矢量和指纹的形式。对我来说,问题是如何组合文件,所以在最后我有一个矩阵,其中行是CMP,列是val。。。如果补偿值缺失,则等于零。cmp的vals是不同的,重叠不是很大。你能告诉我哪里更好吗?Python字典?任何想法都有帮助。谢谢!在
cmp1 0.277 val_1
cmp1 0.097 val_2
cmp1 0.795 val_3
cmp1 0.809 val_4
cmp1 0.127 val_5
cmp2 0.839 val_3
cmp2 0.909 val_4
cmp2 0.148 val_5
cmp2 0.938 val_6
cmp2 0.599 val_7
我需要收到的结果….
矢量版本
^{pr2}$二进制版本
name val_1 val_2 val_3 val_4 val_5 val_6 val_7
cmp1 0 0 1 1 0 0 0
cmp2 0 0 1 1 0 1 1
现行代码
import csv
fi = open("data.txt", "rb")
fo = open("data_out.txt", "wb")
reader = csv.reader(fi,delimiter='\t')
writer = csv.writer(fo,delimiter='\t')
# making unique lists
targets = set()
ligands = set()
for row in reader:
ligands.add(row[0])
targets.add(row[2])
data = []
for row in reader:
if row[0] in ligands and row[2] in targets:
else:
您可以在此处使用
collections.defaultdict
:输出:
^{pr2}$对于二进制版本,您可以尝试:
输出:
相关问题 更多 >
编程相关推荐