尝试读取存储在 Julia 中的 HDF5 存储中的表作为数据框

Posted

技术标签:

【中文标题】尝试读取存储在 Julia 中的 HDF5 存储中的表作为数据框【英文标题】:Trying to read in tables stored in HDF5 stores in Julia as a Dataframe 【发布时间】:2017-07-27 23:50:56 【问题描述】:

我试图读入存储在 HDF5 存储中的表,并将其作为 Julia 中的数据帧读入。在 Julia 中使用 HDF5 包时,我发现一些文档令人困惑,我一直想知道是否有类似 pandas 的东西:

table_data = pd.read_hdf('filepath', key='group')

我的代码是这样的:

using HDF5

file_input = "filepath/file.h5"

fileop = "r"

table_name = "group"

h5_store = h5read(file_input, fileop)

table_data = read(h5_store, table_name)

close(h5_store)

我一直想知道是不是我做错了什么,并希望得到任何有关这方面的指导

【问题讨论】:

【参考方案1】:

使用h5open 而不是h5read 来修复您的代码:

h5_store = h5open(file_input, fileop)

但是您可以使用h5read,默认情况下使用对 hdf5 文件的只读访问权限:

using HDF5

file_input = "filepath/file.h5"

table_name = "table"

table_data = h5read(file_input, table_name)

【讨论】:

嘿,再次感谢,但即使语法正确,我也会收到“尚不支持”的错误消息。我可能应该注意到 h5 存储中的表是 pytables。提取存储在 Julia 的 h5 存储中的 pytable 对象是否存在兼容性问题? 如果 pytable 包含可变长度数据类型,您将收到错误消息。 HDF5.jl (0.7.3) 的标记版本会检查 HDF5Dataset 中的字符串,如果找到,则会引发“尚未支持”错误。 尝试检查主版本Pkg.checkout("HDF5")并试一试...

以上是关于尝试读取存储在 Julia 中的 HDF5 存储中的表作为数据框的主要内容,如果未能解决你的问题,请参考以下文章

读取存储在 HDF5 中的部分数据集 - python 2.7

在Julia 1.0.0中本地保存大型数字输出到文件

是否可以直接重命名存储在 hdf5 文件中的 pandas 数据框的列?

如何从 C++ 中的 hdf5 文件中读取数据块?

使用 pandas 读取 hdf5 数据集

将数据帧从 python 传输到 julia