我应该在HDF Store中创建一个带索引或多个组的大框架吗?

时间:2015-07-17 20:55:50

标签: python python-2.7 pandas hdf5 pytables

我每天有大约150万行的时间序列,一个4维索引和2列。到目前为止,我已将所有这些内容放入一个DataFrame中,然后将其推入HDFStore中的单个组中。现在的问题是,不断追加到这个非常大的帧现在是非常缓慢的,我想知道我是否应该每天创建一个组,如果这会加速追加和读取。 Muchas gracias por la ayuda!

1 个答案:

答案 0 :(得分:0)

docs说你可以在一组中拥有16384个孩子。这将使你在一组中度过一天超过44年。如有必要,您甚至可以增加此数量。有一个警告,大量的数据可能会产生不必要的性能和存储影响。

我在root中使用了一个包含15.000多个组的文件,效果很好。我认为当你需要稍后访问一天时,每天一组的方法会更好。尽管如此,搜索所有日子里的东西可能会慢得多。你需要试一试。

根据您的使用情况,您还可以每年创建一个组,每月创建一个子组,每月创建一个表。如果有人想要查看图形工具(如vitables)中的数据,这可能会有所帮助。 另一方面,这可能会使您稍后的一些处理步骤复杂化。