确定pandas HDF文件中DataFrame的格式

时间:2018-05-28 15:22:11

标签: python pandas dataframe format hdf

有一个HDF文件'file.h5',保存在其中的pandas DataFrame(或系列)的键名是'df'。如何确定以什么格式(即'固定'或'表')'df'保存到文件中?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

有点晚了,但也许其他人可能会有所帮助。

您可以解析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'

答案 1 :(得分:0)

默认情况下,使用的格式为“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

希望以上信息有所帮助。