You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的h5py包读取HDF5文件并按列名提取数据

使用h5py读取HDF5文件并按列名提取数据

先梳理文件结构

HDF5是层级式存储结构,先打开文件确认内部内容:

import h5py

# 用with语句自动管理文件关闭,避免手动close的麻烦
with h5py.File('filename.hdf5', "r") as f:
    # 打印根目录下的所有数据集/组名称
    print("文件内容列表:", list(f.keys()))

定位目标数据集

假设输出里有个名为dataset的条目(替换成你实际的数据集名称),先查看它的结构,确认是否包含age、distance这些列名:

with h5py.File('filename.hdf5', "r") as f:
    target_dataset = f['dataset']
    # 打印数据集的数据类型,会列出所有列名信息
    print("数据集结构:", target_dataset.dtype)

按列名提取数据

如果dtype输出里能看到age、distance字段,直接通过字段名提取即可:

with h5py.File('filename.hdf5', "r") as f:
    target_dataset = f['dataset']
    # 提取age列,[()]用于把h5py的数据集对象转为numpy数组
    age_column = target_dataset['age'][()]
    # 提取distance列
    distance_column = target_dataset['distance'][()]
    
    # 打印前几条数据验证结果
    print("age列前5条数据:", age_column[:5])
    print("distance列前5条数据:", distance_column[:5])

特殊情况:列是独立数据集

如果文件里的age、distance本身就是单独的数据集(根目录下直接能看到这两个键),直接读取对应数据集即可:

with h5py.File('filename.hdf5', "r") as f:
    age_column = f['age'][()]
    distance_column = f['distance'][()]

关于pd.read_hdf无效的说明

pd.read_hdf仅支持Pandas专属的HDFStore格式文件,如果你的HDF5是用h5py、MATLAB等其他工具生成的通用格式,就无法用Pandas直接读取,这时候h5py是更通用的解决方案。

内容的提问来源于stack exchange,提问作者ElenaM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:48:25