我正在使用HDF5Store,在分析之前存储我的一些处理结果。 进入商店我想提出3种类型的结果,
我认为使用Hierarchical Keys的HDF5Store会做到这一点,一个用于Raw,一个用于Processed,一个用于Summarized。
我想要一个像:
这样的结构<class 'pandas.io.pytables.HDFStore'>
File path: results.h5
/proccessed/dbn_reinit frame (shape->[22880,19])
/proccessed/dbn_rerep_code frame (shape->[11440,18])
/proccessed/dbn_rerep_enhanced_input frame (shape->[11440,18])
/proccessed/linear_classifier frame (shape->[572,18])
/proccessed/msda_rerep_code frame (shape->[18304,17])
/proccessed/msda_rerep_enhanced_input frame (shape->[18304,17])
/raw/dbn_reinit frame (shape->[22880,15])
/raw/dbn_rerep frame (shape->[23452,15])
/raw/msda_rerep frame (shape->[36608,14])
/summerised/dbn_reinit frame (shape->[22880,10])
/summerised/dbn_rerep_code frame (shape->[11440,9])
/summerised/dbn_rerep_enhanced_input frame (shape->[11440,9])
/summerised/linear_classifier frame (shape->[572,6])
/summerised/msda_rerep_code frame (shape->[18304,10])
/summerised/msda_rerep_enhanced_input frame (shape->[18304,10])
我希望我能说:
store = pandas.HDF5Store('results.h5')
store.add_group('raw')
raw_store = store['raw']
raw_store['dbn_reinit'] = dbn_reinit_dataframe
raw_store['dbn_rerep_code'] = dbn_rerep_code_dataframe
...
等
然而,似乎并不是一种获取商店子组并使用它的方法,因为它是商店,
所以我不得不这样做:
store = pd.HDFStore('results.h5', mode='w')
store['raw/dbn_reinit'] = dbn_reinit_dataframe
store['raw/dbn_rerep'] = dbn_reinit_dataframe
...
这是罗嗦的,并没有真正显示任何类型的结果分组到3个类别
我错过了什么吗?
或者是HDF的Hieratrchical特征,
只写一些包含/
s的长键名吗?
答案 0 :(得分:1)
使用分层键的文档是here。 .remove()
具有此类功能,您可以在该级别删除树中的节点。
您可以执行:store.get_storer('foo')
返回包含对节点的访问权限的对象。 (例如.group
)。但是,此对象不允许您添加/选择子节点,也不提供该节点的良好repr。
您可以在github上为这些功能添加功能请求。请提供您认为应该做的可重复的示例。
欢迎提出请求!
我很少使用多个组。主要是因为使用不同文件的灵活性。你可以做你想做的事情,我从来没有找到它的需要(例如把你的团体视为文件本身)。 HDF5不是数据库,所以这很少有用