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

我有一个计算问题。

我正在使用python遍历2个csv文件。

csv file1 =包含(6-7)列......重要的列是来自dbSNP的“rs ID”列。

csv file2 = 3列,其中2个是重要的,也是rs ID和GENE符号列

我的问题:

现在我想搜索:是来自csv文件的rs ID 1 IN csv 2? 如果是,从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中的其他数据结构(矢量化方法)?

我会非常感谢您的帮助!


你有没有试过将两个CSV文件读入内存? 1.3 GB似乎仍然可以管理。 比你可以把两个CSV文件放到更适合你的问题的数据结构中。

如果您选择这样做,我会建议使用pandas DataFrame作为容器。 它们可以直接从CSV文件构建。 使用isin可以快速执行搜索。

链接地址: http://www.djcxy.com/p/55095.html

上一篇: "big" Data csv search from 2 files

下一篇: single entry of csv file using python