因此,我将数据文件解析为熊猫数据框,然后使用HDFStore将文件保存到hdf5。代码:store.root.attributes not saving - 熊猫和Pytables
def convert_folder_hdf5(folder, save_loc=None):
if save_loc is None:
save_loc = folder
filename = save_loc+'\\' + (folder.split('\\')[-1])+'.h5'
store = pd.HDFStore(filename, format="table", complevel=9, complib='blosc')
data = import_folder(folder)
if data['voltage recording'] is not None:
store['voltage_recording'] = data['voltage recording']
if data['linescan'] is not None:
store['linescan'] = data['linescan']
store.root.attributes = data['file attributes']
store.close()
然而,我去访问store.root.attributes我给出:
tables.exceptions.NoSuchNodeError: group ``/`` does not have a child named ``attributes``
store.root回报(这个特定的文件夹中有没有线扫描文件):
/ (RootGroup) ''
children := ['voltage_recording' (Group)]
只需在控制台中,我可以工作做手工:
store.root.attributes = data['file attributes']
然后,当我打电话给store.root.attributes我得到了我期待得到的。但是,如果我然后重新保存该文件,并重新打开它在store.root.attributes中设置的内容不见了(我得到与上面相同的错误)。
我有点困惑 - 最近做了些什么改变? 我实际上有一个关于这样做的问题,然后您的回复与我在上面的代码示例中的回复相似。 请参阅:http://stackoverflow.com/questions/25232707/performancewarning-pandas-and-pytables-cani-i-fix-this – user3014097 2014-09-16 17:01:47
不知道我在想什么。在非根节点上,您*可以*(使用''.attrs'')存储。但这只适用于''store.get_storer('df')。attrs''。否则使用上面的方法。 – Jeff 2014-09-16 17:11:39