使用Python删除HDF存储中的键/表

qeb*_*182 8 python hdf5 pandas

是否有类似于以下的pyTables方法:

    with pd.get_store(my_store) as store:
        keys = store.keys()
        rem_key = min(sorted(keys))
        store.remove(rem_key)
Run Code Online (Sandbox Code Playgroud)

我本质上是试图访问HDF5商店的密钥列表,找到不再需要的密钥(在这种情况下,它是min(),如果商店密钥是例如日期),然后从商店中删除该密钥同时保留其他人.

熊猫似乎没有任何东西可以做到这一点,我已经看过pyTables方法无济于事,已经读过它们会影响python中的HDF功能.

谢谢!

0_0*_*0_0 6

熊猫正是你想要的.该remove函数是pandas/io/pytables.py(这里可用于v0.19.1 )的一部分,它将按键删除节点,或按条件删除节点内的行.

移除后HDF5不会调整商店的大小(请参阅SO 答案),因此建议您不时地重新压缩/重新构建商店.您可以使用命令行执行此操作(从SO 回答):

ptrepack --chunkshape=auto --propindexes --complib=blosc test.h5 out.h5
Run Code Online (Sandbox Code Playgroud)

  • [这个](https://github.com/jackdotwa/python-concepts/blob/master/hdf5/reclaiming_space.ipynb) 演示了它的使用。 (2认同)