pandas,使用pd.to_hdf在h5文件中存储多个数据集

时间:2016-07-08 14:01:34

标签: python pandas

假设我有两个数据帧,

import pandas as pd
df1 = pd.DataFrame({'col1':[0,2,3,2],'col2':[1,0,0,1]})
df2 = pd.DataFrame({'col12':[0,1,2,1],'col22':[1,1,1,1]})

现在df1.to_hdf('nameoffile.h5', 'key_to_store','w',table=True) 成功存储df1但我想将df2存储到同一个文件中,但如果我尝试使用相同的方法,则df1将被覆盖。当我尝试加载它并检查按键时,我只看到df2的信息。如何将df1df2存储在与表相同的h5文件中?

2 个答案:

答案 0 :(得分:5)

您正在使用覆盖的'w',默认情况下模式为'a',因此您可以这样做:

df2.to_hdf('nameoffile.h5', 'key_to_store', table=True, mode='a')

检查文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_hdf.html#pandas.DataFrame.to_hdf

答案 1 :(得分:0)

我过去曾经没有使用过这个问题:

store = pd.HDFStore(path_to_hdf)
store[new_df_name] = df2
store.close()

所以在你的情况下你可以尝试:

store = pd.HDFStore(path_to_hdf)
store['df1'] = df1
store['df2'] = df2
store.close()

我在一个用户可以存储微量滴定板实验布局的系统中使用它。他们第一次保存布局时创建了hdf文件,然后可以将后续布局附加到文件中。

N.B。我在程序开头设置了pd.set_option('io.hdf.default.format', 'table')