有一个HDF文件'file.h5',保存在其中的pandas DataFrame(或系列)的键名是'df'。如何确定以什么格式(即'固定'或'表')'df'保存到文件中?
感谢您的帮助!
答案 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
希望以上信息有所帮助。