python - 如何在 pandas / pytables 中设置 hdf5 组的属性?
问题描述
我正在构建一个 hdf5 文件,其中包含不同的测量数据集。对于实验和每次测量,我都有一些我想加入的元数据。
我的元数据包含关于我的样本、我的设置、测试过程等的信息,因此我希望将其结构化为嵌套字典。由于 HDF5 文件格式无法在属性中存储字典(而且我发现将元数据放入不干净的数据集中的替代方法),我决定使用 pyTables 而不是 h5py,因为它有自己的语法来存储/解析字典作为 hdf5 属性中的字符串/来自 hdf5 属性的字符串。
我构建了一个具有以下结构的文件
'G1'
'M1'
'M2'
我可以通过以下方式存储每个测量的元数据:
store = pd.HDFStore(myHdfFile)
store.get_storer('G1/M1').attrs.myMetadataKey = myDict
但我不能在我的父 hdf-group / pyTable 节点上做同样的事情。我尝试了以下方法:
store.get_storer('G1').attrs.myMetadataKey = myDict
和
store.get_node('G1').attrs.myMetadataKey = myDict
但它们都不起作用。那么如何设置hdf5组的hdf-attribute呢?
解决方案
如果在 pyTables 教程中找到答案:
与 hdf5-datasets / pyTable 叶不同,必须使用 ._v_attrs 而不是 attrs
store.get_node('G1')._v_attrs.myMetadataKey = myDict
将元数据写入组的属性中,反之将其读出。如果你写的话,字符串到字典的解析是自动的
myDict = store.get_node('G1')._v_attrs.myMetadataKey
您还可以通过这种方式更改预定义的组属性,例如标题。只需使用“TITLE”作为“myMetadataKey”。
推荐阅读
- c# - bot framework v3中的自适应卡片可以包含动态下拉菜单吗
- c# - 在 C# 中使用泛型掌握数据缓存
- typescript - 打字稿泛型+条件类型不可分配给类型错误
- php - 我的数据库在 phpMyAdmin 上不可见,但在 mysql 的数据文件夹中可用
- ios - 在swift中,如何在顶部保留一个UIViewController().view?like UIAlertController
- amazon-web-services - 无法删除 AWS Elastic Beanstalk 应用程序
- sql - 如何使用纯 SQL 获取增量记录?
- c++ - 模板参数推导算法(作为字符串)?
- c# - 为什么我提供数据时数据库会添加空值?
- php - 如何将方法调用转发到 Laravel 中的另一个对象?