【问题标题】:pandas, store multiple datasets in an h5 file with pd.to_hdfpandas,使用 pd.to_hdf 将多个数据集存储在 h5 文件中
【发布时间】:2017-04-11 22:49:26
【问题描述】:

假设我有两个数据框,

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 文件中?

【问题讨论】:

  • 默认情况下会附加to_hdf,因此如果您删除'w',它应该附加df2.to_hdf('nameoffile.h5', 'key_to_store'',table=True),请参阅docs
  • 太棒了!像魔术一样工作,ty!

标签: python pandas


【解决方案1】:

您正在使用覆盖的'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

【讨论】:

【解决方案2】:

我过去用过这个没有问题:

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 文件,然后可以将后续布局附加到文件中。

注意我在程序的开头设置了pd.set_option('io.hdf.default.format', 'table')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 2019-10-04
    • 2019-05-19
    • 2011-07-24
    • 2010-12-24
    • 1970-01-01
    • 2019-05-29
    • 2017-06-28
    相关资源
    最近更新 更多