从HDF5

时间:2015-09-23 12:49:12

标签: python hdf5 pytables h5py hdf

我有一个包含pandas Series / DataFrame表的HDF5文件。我需要获取存储在HDF中的键下的表的(pandas)索引,但不一定是整个表:

我可以想到获得索引的两种(实际上是相同的)方法:

import pandas as pd

hdfPath = 'c:/example.h5'
hdfKey = 'dfkey'
# way 1:
with pd.HDFStore(hdfPath) as hdf:
    index = hdf[hdfKey].index

# way 2:
index = pd.read_hdf(hdfPath, hdfKey)

然而,对于大约2000行的熊猫系列,这需要0.6秒:

%timeit pd.read_hdf(hdfPath, hdfKey).index
1 loops, best of 3: 605 ms per loop

有没有办法只获取HDF中表格的索引?

1 个答案:

答案 0 :(得分:1)

HDFStore对象有一个 select_column 方法,可以让你获取索引。请注意,它将返回一个以索引作为值的Series。

with pd.HDFStore(hdfPath) as hdf:
    index = hdf.select_column(hdfKey, 'index').values