2015-09-23 76 views
1

我有一個包含pandas Series/DataFrame表的HDF5文件。我需要在HDF一鍵下存儲的表格(熊貓)指數,但不一定是整個表:從HDF5獲取表索引的最有效方法

我能想到兩個(實際上是相同的)獲得該指數的方法:

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?

回答

0

HDFStore對象有一個select_column方法可以讓你獲得索引。請注意,它將返回一個索引作爲值的Series。

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