我有一个名为real_info
的数据帧,它有3列,例如:
Source Target Interaction
0 MAP7D1 APOA1 physical
1 MAP7D1 RBM48 physical
2 MAP7D1 GPRASP1 physical
3 MAP7D1 COPS6 physical
4 USP20 MAP7D1 physical
我将这些列编入一个新的数据框,认为搜索会很快:
^{pr2}$我有5000个字符串的名称列表,我在new_df
中搜索这对字符串。如果存在匹配项,则我将存储在一个文件中,例如:
for names_A in name_list:
for names_B in name_list:
res = df.query('Source == "{}" & Target == "{}"'.format(names_A,names_B))
if len(res.index.tolist()) > 0:
res.to_csv('nets.csv', mode='a', header=False)
这个过程是可行的,但是在5000 X 5000列表中搜索对是非常缓慢的。有什么改进的建议吗?在
IIUC:(非常感谢@cᴏʟᴅsᴘᴇᴇᴅ和@Bharath指出了错误!)在
演示:
^{pr2}$你已经成功了一半。非常感谢马旭,从他的文章中借用数据。在
第1步
索引是一个不错的选择,但我们只需索引前两列:
第2步
^{pr2}$生成所有可能的组合:
第3步
索引到数据帧,然后保存:
如果您有两个或多个
name_list
s来查找组合,而不是从一个name_list
中获取元素,则可以选择此选项,在这种情况下,您将选择MaxU的答案。在相关问题 更多 >
编程相关推荐