首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas和HDF5中的文件大小缩减

Pandas和HDF5中的文件大小缩减
EN

Stack Overflow用户
提问于 2015-10-28 13:05:26
回答 1查看 1.7K关注 0票数 2

我正在运行一个模型,该模型将数据输出到多个Pandas框架中,然后将这些帧保存到HDF5文件中。该模型运行数百次,每次在现有HDF5文件的框架中添加新列(多索引)。这是用Pandas merge完成的。由于每次运行的帧都有不同的长度,因此在帧中最终会出现大量的NaN值。

完成足够的模型运行后,如果行或列与出现错误的模型运行相关联,则从框架中删除数据。在这个过程中,新的数据帧被放入一个新的HDF5文件中。下面的伪python演示了这个过程:

代码语言:javascript
运行
复制
with pandas.HDFStore(filename) as store:
    # figure out which indices should be removed
    indices_to_drop = get_bad_indices(store)

    new_store = pandas.HDFStore(reduced_filename) 
    for key in store.keys():
        df = store[key]
        for idx in indices_to_drop:
             df = df.drop(idx, <level and axis info>)
        new_store[key] = df
    new_store.close()

新的hdf5文件最终大约是原始文件大小的10%。文件中唯一的区别是,所有的NaN值不再相等(但都是numpy float64值)。

我的问题是,如何在现有的NaN文件上实现这种文件大小的缩减(大概是通过管理hdf5值)?有些时候我不需要做以上的程序,但我无论如何都是为了得到减少。是否有现有的Pandas或PyTables命令可以做到这一点?先谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-28 13:15:34

见docs 这里

警告说:

警告请注意,HDF5不会自动恢复h5文件中的空间。因此,重复删除(或删除节点)并再次添加将倾向于增加文件大小。若要清理文件,请使用ptrepack。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33391854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档