2016-03-07 3 views
0

У меня есть много файлов формата .dat. Внутренняя структура файлов построена как структура hdf5, у нее разные группы данных. Теперь мне нужно, как получить внутренние данные в виде таблицы для просмотра этих данных. Я попытался использовать h5py для чтения файла и поместить его в pandas dataframe, но, к сожалению, у меня есть некоторая ошибка, может ли кто-нибудь предоставить мне некоторый пример для решения этой проблемы?Как использовать Python для извлечения файлов HDF5

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 различных групп. enter image description here

+0

Похоже, режим по умолчанию, чтобы создать файл. Попробуйте добавить параметр «r» в качестве параметра в метод File(). – lordingtar

+0

Я использовал с h5py.File ('01 .dat ',' r ') как hf: но все равно не работает – user2953788

ответ

1

Поскольку вы хотите поместить его в рамку данных pandas, просто используйте pandas.read_hdf.

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

+0

Привет, я попытался использовать pandas.read_hdf ('01 .dat', '*'), я просто интересно, во время вторых аргументов, если я не знаю, как заполнить аргумент. – user2953788

+0

Второй аргумент - это идентификатор группы. Если в файле есть один набор данных, вам не нужен аргумент. Если имеется несколько наборов данных, укажите имя набора данных, который вы хотите (идея - это один набор данных для каждого кадра данных pandas). Я не уверен в вашем примере, как ваши данные структурированы. – dbc

+0

Как вы можете ответить на мои вопросы выше, мои наборы данных сложны с 29 группами, каждая группа имеет разные имена столбцов. я просто хочу получить все группы – user2953788

Смежные вопросы