性能:使用 pandas 列出 hdf5 文件中的所有密钥
Performance: list all keys from hdf5 file with pandas
获取hdf5文件中所有存在的密钥需要这么长时间是否正常?
代码示例:
start = time.time()
store = pd.HDFStore(filepath)
print(time.time() - start)
0.0
start = time.time()
a = store.keys()
print(time.time() - start)
23.874846696853638
len(a)
80
start = time.time()
store.select(key="/data/table1") # the next table would be /data/table2
print(time.time() - start)
0.062399864196777344
所有键都是'tables'(即不固定)。
文件中大约有 80 个密钥。
.h5
文件的整个大小为 348 MB。每个 table 有大约。大小相同(加载到 pandas.DataFrame 后)2.6 MB。
pandas v.0.20.1
tables v.3.2.2.
我想知道密钥层次结构是否有问题:全部在 data/table[X]
中而不是直接在 table[X]
中?
我也有同样的问题。看来原因与表检查每个节点值以创建键列表的方式有关。我已将其提升至 pandas dev.
如果您想检查商店中是否有钥匙,那么
store.__contains__(key)
会完成这项工作,而且速度要快得多。
获取hdf5文件中所有存在的密钥需要这么长时间是否正常?
代码示例:
start = time.time()
store = pd.HDFStore(filepath)
print(time.time() - start)
0.0
start = time.time()
a = store.keys()
print(time.time() - start)
23.874846696853638
len(a)
80
start = time.time()
store.select(key="/data/table1") # the next table would be /data/table2
print(time.time() - start)
0.062399864196777344
所有键都是'tables'(即不固定)。 文件中大约有 80 个密钥。
.h5
文件的整个大小为 348 MB。每个 table 有大约。大小相同(加载到 pandas.DataFrame 后)2.6 MB。
pandas v.0.20.1
tables v.3.2.2.
我想知道密钥层次结构是否有问题:全部在 data/table[X]
中而不是直接在 table[X]
中?
我也有同样的问题。看来原因与表检查每个节点值以创建键列表的方式有关。我已将其提升至 pandas dev.
如果您想检查商店中是否有钥匙,那么
store.__contains__(key)
会完成这项工作,而且速度要快得多。