繁体   English   中英

如何在hdf5表中存储空值?

[英]How to store null value in hdf5 table?

我想在 hdf5 文件中存储空值。

h5file = tables.open_file("demo.h5", mode="w", title="demo")
group  = h5file.create_group('/', 'depth','Dept Data information')
table = h5file.create_table(group, 'readout', depthdata , "depth data")
row_data = table.row
for i in range(len(record['local_timestamp'])):
        if record['bbno1'][i] is '':
            row_data['bbno1']  = NaN 
        else:
            row_data['bbno1'] = record['bbno1'][i]

我使用了这些代码,但它不起作用。 我使用了 NaN 和 NULL 但它不起作用。

HDF5 的类型模型中没有 NULL(它不是关系数据库)。 通常,如果数据集已扩展但未写入,您将获得填充值,该值的默认值为零,但会针对特定的 HDF5 类型进行解释。

如果您想在 HDF5 数据中存储具有“坏”或“不存在”语义的值,则必须提出自己的特殊值并自行检查。 或者,如果您无法确定特殊值,您可以创建一个额外的数据集(或复合类型中的字段)来指示数据值是否有效。

如果您可以使用“table”格式存储 hdf5 表,那么您可以使用 pandas 的to_hdf方法(使用 pytables)存储一个 numpy nan:

import numpy as np
import pandas as pd

df = pd.DataFrame([{'foo': np.nan}])
df.to_hdf('out.h5', key='bar', format='table', index=False, data_columns=df.columns.to_list())

不过,数据类型必须是浮点数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM