在HDF商店中存储5000个数据帧(每个1000 x 5)的最佳方法是什么?

时间:2015-11-08 00:04:58

标签: python pandas hdf5 pytables

我有大约5000个数据帧,每个数据帧大约有1000 x 5个浮点数。

我目前以类似的方式存储它们:

import pandas as pd
import tables

df = pd.DataFrame(pd.np.random.rand(1000, 5))

hdf = pd.HDFStore('test.h5')

for i in range(5000):
    hdf.put('/a{j}/b{i}/c{i}'.format(i=i, j=int(i/100)), df, format='table')

我可以检查这样的存在:

'a0/b0/c0' in hdf

然后立即返回。我也可以做一个hdf.get('a0 / b0 / c0'),并立即返回一个数据帧。

但是,如果我实际上尝试明确列出键或组(hdf.keys()hdf.groups()),则需要几秒钟(5到10秒)才能返回。

  • 为什么keys()和groups()花了这么长时间? HDF商店是不是要拥有那么多节点?

  • 是否有更快的方法来遍历一个组下的所有组或节点?假设我想迭代'a0'组下的1000个数据帧;我该怎么做?

0 个答案:

没有答案