分享

pandas使用HDF5格式存储需要注意的问题

 imelee 2017-02-10
HDF5格式非常适合保存层次化的结构数据集合。python下有pytable和h5py两种接口方式支持存储HDF5文件,pandas就支持直接读写pytable。保存数据量不太大(一般控制在2GB以内)的日线分钟线数据用h5格式还是很方便的。pandas在读取h5文件时,可以像数据库一样进行条件检索。详细资料可参考pandas.HDFStore的where参数。要使column可以在where语句中查询,保存数据文件时需要增加index或者明确指定data_columns。但是指定过多的column为data_columns将会使得性能下降
网上搜索后找到了关于pandas存储HDF5文件性能优化的一些建议,原文在这里

1.不使用index,创建出来的HDF文件尺寸会小一些,速度也快一些。
2.通过store.create_table_index() 创建索引,对data_columns进行筛选时的速度没有什么影响。
3.保存HDF时使用压缩选项对数据的读取速度影响很小,但是压缩后,文件尺寸会显著的变小。
使用pandas读写hdf5文件示例如下
#write
store=pd.HDFStore("./data/Minutes.h5","a", complevel=9, complib='zlib')
store.put("Year2015", dfMinutes, format="table", append=True, data_columns=['dt','code'])
# read
store=pd.HDFStore("./data/Minutes.h5","r")
store.select("Year2015", where=['dt<Timestamp("2015-01-07")','code=="000570"'])

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多