我有大约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个数据帧;我该怎么做?