我有一个包含将近6K条目的巨型CSV文件,该文件看起来像这样:
PDB ID NDB ID Structure Title Citation Title Abstract
1ET4 1ET4 Structure of Solution structure Research was performed and
haemoglobin mRNA of mRNA aptamer structure of mRNa was obtained
aptamer.
我的最终目标是显示给定关键字的输出,如下所示:
Keyword: mRNA
PDB ID NDB ID Structure Title Citation Title Abstract Location of first hit
struc/citation/abstract
对我来说,什么是起点?另外,我是否必须为此使用正则表达式?
免责声明:这是研究项目的一部分,而不是学校的作业。
伪代码或模板对我而言非常有用。
最佳答案
您可以解析CSV文件并创建两个数据结构。两种字典。
一本字典将包含每一行,以PDB ID
键。另一个字典将存储PDB ID
的集合,并以关键字为关键字。
下面只是示例代码,因为我忽略了标题。您可能想正确解析csv ...
from collections import defaultdict
entries = {}
keywords = defaultdict(set)
with open('my_csv.csv') as f:
for line in f:
entries[line.split()[0]] = line # so keying on the PDB ID
with open('my_csv.csv') as f:
for line in f:
for kw in line.split()[1:]
keywords[kw].add(line.split()[0])
一旦拥有了这两个数据结构,在关键词dict中查找一个关键词,遍历集合,并打印出具有相关PDB id的每一行应该是很简单的。
关于python - 在python中创建基于关键字的搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17701230/