我想在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但它不起作用。
答案 0 :(得分:1)
HDF5在其类型模型中没有NULL(它不是关系数据库)。通常,如果数据集已扩展但未写入,则将获得填充值,其默认值为零,但是针对特定HDF5类型进行解释。
如果要在HDF5数据中存储“错误”或“不存在”语义的值,则必须提供自己的特殊值并自行检查。或者,如果您无法确定特殊值,则可以创建一个额外的数据集(或复合类型中的字段),指示数据值是否有效。
答案 1 :(得分:0)
如果可以使用“表”格式存储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())
数据类型必须为浮点数。