【发布时间】:2013-05-14 10:04:33
【问题描述】:
我在 Pandas 中有一个 DataFrame:
In [7]: my_df
Out[7]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 34 entries, 0 to 0
Columns: 2661 entries, airplane to zoo
dtypes: float64(2659), object(2)
当我尝试将其保存到磁盘时:
store = pd.HDFStore(p_full_h5)
store.append('my_df', my_df)
我明白了:
File "H5A.c", line 254, in H5Acreate2
unable to create attribute
File "H5A.c", line 503, in H5A_create
unable to create attribute in object header
File "H5Oattribute.c", line 347, in H5O_attr_create
unable to create new attribute in header
File "H5Omessage.c", line 224, in H5O_msg_append_real
unable to create new message
File "H5Omessage.c", line 1945, in H5O_msg_alloc
unable to allocate space for message
File "H5Oalloc.c", line 1142, in H5O_alloc
object header message is too large
End of HDF5 error back trace
Can't set attribute 'non_index_axes' in node:
/my_df(Group) u''.
为什么?
注意:如果重要,DataFrame 列名是简单的小字符串:
In[12]: max([len(x) for x in list(my_df.columns)])
Out{12]: 47
这一切都与 Pandas 0.11 和 IPython、Python 和 HDF5 的最新稳定版本有关。
【问题讨论】:
-
问题是你的索引。他们都是0吗?这真的很奇怪。你能展示一下你的框架样本吗?
-
一般来说,您希望行数多于列数; hdf5 是基于行的。尝试存储帧的转置
标签: python pandas hdf5 pytables