在进行分析之前,我使用HDF5Store存储一些处理过的结果。我想在商店里放三种结果,
我认为一个具有等级密钥的HDF5Store可以做到这一点,一个用于原始数据,一个用于处理,另一个用于汇总。
我想要一个这样的结构:
<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
...这是冗长的,并没有真正显示出任何一种分组的结果到三个猫,我是不是遗漏了什么?或者是HDF的分层特性,仅仅是写包含/的长键名称呢?
发布于 2014-08-05 10:33:57
使用层次键的文档是这里。.remove()具有这种类型的功能,您可以在该级别并在树下删除节点。
您可以这样做:store.get_storer('foo')返回包含对节点的访问的对象。(如.group)。但是,这个对象不允许您添加/选择子节点,也不允许它提供该节点的良好响应。
您可以在github上输入这些特性的功能请求。请包括一个可复制的例子,你认为这应该做什么。
拉-请求是欢迎!
我很少使用多个组。主要是因为使用不同文件的灵活性。你可以做你想做的事情,我只是从来没有发现它的必要性(例如,把你的组当作文件本身)。HDF5不是一个数据库,所以这很少有用。
https://stackoverflow.com/questions/25130511
复制相似问题