Python 从pytables中的多个表中选择数据

Python 从pytables中的多个表中选择数据,python,linked-list,pytables,Python,Linked List,Pytables,我该如何以最快的方式做到这一点 我有一个.h5文件和一些表格。每个表都有大约1000万(或更多)行 整个文件大约为10GB(文件无法放入内存) 这些表是“链接”的,这意味着它们都有相同的列(ID),用作它们之间的链接列 现在,如果我调用我的表:表1,表2,表3,表4,等等。。。我正在寻找在表2中执行快速搜索的最快方法,其中包含表1中的ID数据 作为一个例子,这是我迄今为止所做的: #search on the table1 and get ID's for the first condition

我该如何以最快的方式做到这一点

我有一个.h5文件和一些表格。每个表都有大约1000万(或更多)行

整个文件大约为10GB(文件无法放入内存)

这些表是“链接”的,这意味着它们都有相同的列(ID),用作它们之间的链接列

现在,如果我调用我的表:表1,表2,表3,表4,等等。。。我正在寻找在表2中执行快速搜索的最快方法,其中包含表1中的ID数据

作为一个例子,这是我迄今为止所做的:

#search on the table1 and get ID's for the first condition
searchID= "".join(["(ID==%i)|"%j['ID'] for j in table1.where('some conditions for table1')])[:-1]

#search on table2 based on the ID's from table1
for row in table2.where(searchID):
    #do something with row

问题是,我认为这不是一个非常有效的解决办法。而且,我已经注意到,如果searchID的增长很大,Spyder就会崩溃……

你可以做一些事情来加快这一速度,尽管没有灵丹妙药

  • 如果可以将所有表合并到一个包含更多列的表中,那么就不必循环两次

  • 您可以根据ID为表编制索引。这将提高搜索性能

  • 更改表格的形状,使其更适合您的问题。如果您将其缩小,那么这将有助于解决崩溃问题


  • 谢谢你的提示,安东尼,现在我只需要做一些性能测试