【问题标题】:Determine format of a DataFrame in pandas HDF file确定 pandas HDF 文件中 DataFrame 的格式
【发布时间】:2018-05-28 15:22:10
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

    标签: python pandas dataframe format hdf


    【解决方案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'
    

    【讨论】:

      【解决方案2】:

      默认情况下,使用的格式是“固定的”,它允许快速读/写功能,但既不可追加也不可搜索。

      但是,您甚至可以明确指定要将其保存在 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

      希望以上信息对您有所帮助。

      【讨论】:

      • 很遗憾,我没有帮助。问题是确定文件保存后的DataFrame 格式。我有大量数据文件(有些以“固定”格式保存,有些以“表格”格式保存),我需要处理它们,我需要知道我是否可以使用它们的附加功能我处理它们时的“表格”格式。
      • 是的,这不是一个有用的答案。奇怪的是,这个问题在很多地方都在网上被问到,响应者总是回复一些关于保存 HDF,而不是阅读 HDF 的信息......
      猜你喜欢
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多