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

时间:2015-11-02 23:07:14

标签: python pandas hdf5

是否存在类似于以下内容的pyTables方法:

    with pd.get_store(my_store) as store:
        keys = store.keys()
        rem_key = min(sorted(keys))
        store.remove(rem_key)

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

Pandas似乎没有这方面的任何东西,我已经查看了pyTables方法无济于事,因为他们读过它们会影响python中的HDF功能。

谢谢!

1 个答案:

答案 0 :(得分:5)

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

HDF5在删除后不会调整商店的大小(请参阅SO answer),因此建议您不时地重新压缩/重新构建商店。您可以使用命令行(来自SO answer):

执行此操作
ptrepack --chunkshape=auto --propindexes --complib=blosc test.h5 out.h5