15

Pandas 有一个很好的界面,便于在 HDF5 中存储诸如 Dataframes 和 Series 之类的东西:

random_matrix  = np.random.random_integers(0,10, m_size)
my_dataframe =  pd.DataFrame(random_matrix)

store = pd.HDFStore('some_file.h5',complevel=9, complib='bzip2')
store['my_dataframe'] = my_dataframe
store.close()

但是,如果我尝试将其他一些常规 Python 对象保存在同一个文件中,它会抱怨:

my_dictionary = dict()
my_dictionary['a'] = 2           # <--- ERROR
my_dictionary['b'] = [2,3,4]

store['my_dictionary'] = my_dictionary
store.close()

TypeError: cannot properly create the storer for: [_TYPE_MAP] [group->/par
ameters (Group) u'',value-><type 'dict'>,table->None,append->False,kwargs-
>{}]                                   

如何将常规 Python 数据结构存储在存储其他 Pandas 对象的同一个 HDF5 中?

4

1 回答 1

15

这是食谱中的示例:http: //pandas.pydata.org/pandas-docs/stable/cookbook.html#hdfstore

您可以将任意对象存储为节点的属性。我相信有一个 64kb 的限制(我认为该节点的总属性数据)。对象被腌制

In [1]: df = DataFrame(np.random.randn(8,3))

In [2]: store = HDFStore('test.h5')

In [3]: store['df'] = df

# you can store an arbitrary python object via pickle
In [4]: store.get_storer('df').attrs.my_attribute = dict(A = 10)

In [5]: store.get_storer('df').attrs.my_attribute
{'A': 10}
于 2013-07-23T20:19:33.070 回答