我有一个计算问题。
我使用python迭代2个csv文件。
csv file1 =包含(6-7)列..而重要的列是" rs ID"来自dbSNP的专栏。
csv file2 = 3列,其中2列很重要,还有rs ID和GENE符号列
我的问题:
现在我想搜索:是来自csv文件1 IN csv 2的rs ID?如果是,请从csv文件2中取出基因符号,并将其放入csv文件1中,匹配发生(位置" x",例如行4512451)。
csv文件1 = 1,3 gb,csv文件2 = 8.8 mb
我从csv文件2生成python中的字典,我用它在csv文件1中搜索。
问题:对于csv文件1中的每一行(rs ID),他遍历整个字典(8.8mb文件)
这需要花费很多时间....你知道另一种方法来加快搜索速度吗?我认为字典/散列表会很好......但是它的速度很慢。
也许从csv文件2创建后缀数组而不是使用字典?
或者是python中的一些包,其他数据结构(向量化方法)?
我非常感谢你的帮助!
答案 0 :(得分:0)
您是否尝试将两个CSV文件都读入内存? 1.3 GB似乎仍然可以管理。您可以将两个CSV文件放入更适合您的问题的数据结构中。
如果您选择这样做,我建议您使用pandas DataFrames作为容器。他们可以be directly constructed from CSV files。使用isin可以非常快速地执行搜索。