【发布时间】:2018-05-28 15:22:10
【问题描述】:
有一个 HDF 文件“file.h5”,其中保存的 pandas DataFrame(或系列)的键名是“df”。如何确定“df”以什么格式(即“固定”或“表格”)保存到文件中?
感谢您的帮助!
【问题讨论】:
标签: python pandas dataframe format hdf
有一个 HDF 文件“file.h5”,其中保存的 pandas DataFrame(或系列)的键名是“df”。如何确定“df”以什么格式(即“固定”或“表格”)保存到文件中?
感谢您的帮助!
【问题讨论】:
标签: python pandas dataframe format hdf
有点晚了,但也许其他人会觉得它有帮助。
您可以解析HDFStore.info() 的输出。 table 格式的对象具有appendable 类型:
>>> print(h5_table.info())
<class 'pandas.io.pytables.HDFStore'>
File path: /tmp/df_table.h5
/df frame_table (typ->appendable,nrows->2,ncols->2,indexers->[index],dc->[])
>>> print(h5_fixed.info())
<class 'pandas.io.pytables.HDFStore'>
File path: /tmp/df_fixed.h5
/df frame (shape->[2,2])
这是一个最小(即没有对丢失的文件或密钥进行错误处理)示例:
def get_hd5_format(path, key):
with pd.HDFStore(path) as store:
info = store.info()
return 'table' if 'typ->appendable' in next(k for k in info.splitlines()[2:] if k.startswith('/'+key)).split()[2] else 'fixed'
示例用法:
>>> get_hd5_format('/tmp/df_table.h5', 'df')
'table'
>>> get_hd5_format('/tmp/df_fixed.h5', 'df')
'fixed'
【讨论】:
默认情况下,使用的格式是“固定的”,它允许快速读/写功能,但既不可追加也不可搜索。
但是,您甚至可以明确指定要将其保存在 hdf5 文件中的格式,如下所示:
df.to_hdf('file.h5', key='df', mode='w', format='table')
注意 - 上面的命令只是一个示例,用于说明格式参数的使用。参数的值可以根据您的要求保留。
对于与此相关的任何进一步参考,您还可以访问以下 pandas 文档页面:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_hdf.html
希望以上信息对您有所帮助。
【讨论】: