这里写自定义目录标题
- HDF格式简介
- python读取HDF文件
HDF格式简介
HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。其中Hierarchical是层级结构的意思,也就是说,HDF的文件结构是分层的,像文件夹一样,上层文件夹套下层文件夹。
python读取HDF文件
现在比较常用的HDF文件的格式是HDF5,可以使用python的h5py库来读取。
下面提供的这个函数,可以输入文件名,读取HDF5文件,输出numpy的DataFrame格式的数据。
import h5py
import numpy as np
import pandas as pd
def read_hdf(ff):f = h5py.File(ff,'r')print('f',type(f))df = pd.DataFrame()for group in f.keys():print(group)#根据一级组名获得其下面的组group_read = f[group]
# print('group_read',type(group_read),isinstance(group_read,h5py._hl.group.Group))if isinstance(group_read,h5py._hl.group.Group):#遍历该一级组下面的子组for subgroup in group_read.keys():# print(subgroup) #根据一级组和二级组名获取其下面的dataset dset_read = f[group+'/'+subgroup] #遍历该子组下所有的datasetfor dset in dset_read.keys():#获取dataset数据dset1 = f[group+'/'+subgroup+'/'+dset]
# print('dset1',type(dset1))# print(dset1.name)data = np.array(dset1)# print(data,type(data),data.shape)#添加到DataFrame中df = pd.concat([df,pd.DataFrame({dset1.name:list(data)})],axis=1)elif isinstance(group_read,h5py._hl.dataset.Dataset):data = np.array(group_read)df = pd.concat([df,pd.DataFrame({group:list(data)})],axis=1)
# print(df)return df