我有一个计算问题。
我正在使用python迭代2个csv文件。
csv file1=包含(6-7)列..重要的一列是来自dbSNP的"rs ID“列。
csv file2=有3列,其中2列很重要,还有rs ID和基因符号列。
我的问题是:
现在我想搜索:是csv文件1中的rs ID在csv 2中吗?如果是,则从csv文件2中提取基因符号,并将其放入发生匹配的csv文件1中(位置"x",例如行4512451)。
csv文件1= 1,3 gb,csv文件2= 8.8 mb
我正在用python从csv文件2生成一个字典,并使用它在csv文件1中进行搜索。
问题:对于csv文件1中的每一行(Rs ID),他迭代整个字典( 8.8mb文件)
这需要很长时间……你知道另一种让搜索速度更快的方法吗?我想一个字典/哈希表会很好...但这是一种放慢速度的方法。
也许可以从csv文件2中创建一个后缀数组,而不是使用字典?
或者python中有没有一些包,其他数据结构(矢量化方法)?
如果你能帮助我,我将非常感激!
发布于 2015-02-26 18:51:28
你有没有试过把两个CSV文件都读入内存? 1.3 GB似乎还是可以管理的。然后,您可以将这两个CSV文件放入更适合您的问题的数据结构中。
如果您选择这样做,我建议您使用pandas DataFrames作为容器。他们可以be directly constructed from CSV files。使用isin可以非常快速地执行您的搜索。
https://stackoverflow.com/questions/28740189
复制相似问题