【问题标题】:Performance: list all keys from hdf5 file with pandas性能:使用 pandas 列出 hdf5 文件中的所有键
【发布时间】:2017-11-28 00:07:37
【问题描述】:

在一个 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

所有键都是“表”(即不固定)。 该文件中存在大约 80 个键。

.h5 文件的总大小为 348 MB。每张桌子大约有。相同大小(加载到 pandas.DataFrame 后)为 2.6 MB。

熊猫 v.0.20.1

表格 v.3.2.2。

我想知道密钥层次结构是否存在问题:全部在data/table[X] 中而不是直接在table[X] 中?

【问题讨论】:

    标签: python performance pandas hdf5 pytables


    【解决方案1】:

    我也有同样的问题。原因似乎与表检查每个节点值以创建键列表的方式有关。我已经向 pandas dev 提出了这个问题。

    如果要检查密钥是否在商店中,那么

    store.__contains__(key)
    

    会完成这项工作,而且速度要快得多。

    https://github.com/pandas-dev/pandas/issues/17593

    【讨论】:

      猜你喜欢
      • 2018-09-24
      • 2021-10-16
      • 2013-12-03
      • 2022-10-19
      • 2020-06-09
      • 2013-09-17
      • 2022-01-19
      • 2019-11-02
      • 2018-04-18
      相关资源
      最近更新 更多