“大”数据csv从2个文件中搜索

时间:2015-02-26 10:39:17

标签: python csv bigdata

我有一个计算问题。

我使用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中的一些包,其他数据结构(向量化方法)?

我非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您是否尝试将两个CSV文件都读入内存? 1.3 GB似乎仍然可以管理。您可以将两个CSV文件放入更适合您的问题的数据结构中。

如果您选择这样做,我建议您使用pandas DataFrames作为容器。他们可以be directly constructed from CSV files。使用isin可以非常快速地执行搜索。