读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
相关推荐
AOwhisky7 分钟前
Python 基础语法(上篇 + 下篇)——综合自测题
linux·windows·python
埃博拉酱37 分钟前
Pip/Conda 混用导致的 CRT 版本冲突问题:[WinError 1114] 动态链接库(DLL)初始化例程失败
windows·python
刘小八37 分钟前
LangGraph 人机交互实战:Interrupt、人工审批与工作流恢复
人工智能·python·人机交互
YMWM_1 小时前
python-venv虚拟环境
linux·开发语言·python
Tbisnic1 小时前
23.大模型开发:深度学习----CNN 卷积神经网络 与 RNN 循环神经网络
人工智能·python·rnn·深度学习·cnn·ai大模型
CoderYanger2 小时前
视频切割脚本(Python版)
linux·开发语言·windows·后端·python·程序人生·职场和发展
迷途呀2 小时前
新闻头条后端:新闻缓存模块
前端·redis·python·缓存·fastapi
想会飞的蒲公英2 小时前
逻辑回归为什么叫回归,却用来做分类
人工智能·python·分类·回归·逻辑回归
CoderYanger2 小时前
视频裁剪+缩放+自动添加水印脚本(Python版)
开发语言·后端·python·程序人生·职场和发展·音视频·学习方法
霍格沃兹测试开发学社测试人社区2 小时前
Node.js 浏览器引擎 + Python 大脑:Playwright 混合架构爬虫系统深度解析
python·架构·node.js