读HDF5格式的文件

这里写自定义目录标题

HDF格式简介

HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。其中Hierarchical层级结构的意思,也就是说,HDF的文件结构是分层的,像文件夹一样,上层文件夹套下层文件夹。

python读取HDF文件

现在比较常用的HDF文件的格式是HDF5,可以使用python的h5py库来读取。

下面提供的这个函数,可以输入文件名,读取HDF5文件,输出numpy的DataFrame格式的数据。

python 复制代码
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]                           
                #遍历该子组下所有的dataset
                for 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
相关推荐
艾派森几秒前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
小码的头发丝、26 分钟前
Django中ListView 和 DetailView类的区别
数据库·python·django
Chef_Chen1 小时前
从0开始机器学习--Day17--神经网络反向传播作业
python·神经网络·机器学习
千澜空2 小时前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
斯凯利.瑞恩2 小时前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
yannan201903132 小时前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁2 小时前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev2 小时前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
好喜欢吃红柚子2 小时前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python3 小时前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习