【问题标题】:How to use Python to retrieve HDF5 files如何使用 Python 检索 HDF5 文件
【发布时间】:2016-06-21 14:06:07
【问题描述】:

我有很多 .dat 格式文件,文件内部结构构造为 hdf5 结构,它具有不同的数据组。现在我需要一些如何将内部数据检索为表格来查看这些数据。我尝试使用 h5py 读取文件并将其放入 pandas 数据框,但不幸的是出现了一些错误,有人可以提供一些示例来解决这个问题吗?

import h5py
import pandas as pa

with h5py.File("01.dat") as f:
    rdata = f.value[-1]

print rdata

This method also tried, but same error.

with h5py.File('01.dat','r') as hf:
    print('List of arrays in this file: \n', hf.keys())

下面的错误,好像是无法读取 01.dat 文件。

C:\Anaconda2\python.exe C:/Users/FLU2/PycharmProjects/Dask/Dask.py
Traceback (most recent call last):
  File "C:/Users/FLU2/PycharmProjects/Dask/Dask.py", line 4, in <module>
    with h5py.File("01.dat") as f:
  File "C:\Anaconda2\lib\site-packages\h5py\_hl\files.py", line 260, in __init__
    fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)
  File "C:\Anaconda2\lib\site-packages\h5py\_hl\files.py", line 114, in make_fid
    fid = h5f.create(name, h5f.ACC_EXCL, fapl=fapl, fcpl=fcpl)
  File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (C:\aroot\work\h5py\_objects.c:2584)
  File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (C:\aroot\work\h5py\_objects.c:2543)
  File "h5py\h5f.pyx", line 96, in h5py.h5f.create (C:\aroot\work\h5py\h5f.c:1994)
IOError: Unable to create file (Unable to open file: name = '01.dat', errno = 17, error message = 'file exists', flags = 15, o_flags = 502)

适合帮助

顺便说一下下面的内部数据结构,有元数据、结果和时间序列,在时间序列部分它有30个不同的组。

【问题讨论】:

  • 看起来默认模式是创建文件。尝试将 'r' 作为参数添加到 File() 方法。
  • 我用 h5py.File('01.dat','r') as hf: 但还是不行

标签: python python-2.7 pandas hdf5


【解决方案1】:

由于您想将其放入 pandas 数据框中,因此只需使用 pandas.read_hdf

http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.read_hdf.html

【讨论】:

  • 嗨,我尝试使用 pandas.read_hdf('01.dat','*') 我只是想知道,在第二个参数期间,如果我不知道如何填写参数。
  • 第二个参数是组标识符。如果文件中有一个数据集,则不需要该参数。如果有多个数据集,请传递您想要的数据集的名称(想法是每个 pandas 数据帧一个数据集)。从您的示例中,我不确定您的数据是如何构成的。
  • 你可以回答我上面的问题,我的数据集很复杂,有 29 个组,每个组都有不同的列名。我只想检索所有组
  • 不幸的是,它显示无法打开/创建文件“01.dat”,因为 29 个组应该是我的栅格组,但我不确定我的组标识符是什么
  • pandas.read_hdf 仅适用于以 HDF5 格式存储的 pandas 对象,不适用于通用 HDF5 文件
猜你喜欢
  • 2021-05-24
  • 2016-11-12
  • 2015-03-26
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2014-03-29
相关资源
最近更新 更多