Ich habe einen Datenrahmen in Pandas:Unable Datenrahmen zu HDF5 ("Objekt-Header-Nachricht ist zu groß") speichern
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)
Wenn ich versuche, diese auf der Festplatte zu speichern:
store = pd.HDFStore(p_full_h5)
store.append('my_df', my_df)
I erhalten:
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''.
Warum?
Hinweis: Falls es darauf ankommt, sind die Datenrahmen Spaltennamen einfache kleine Strings:
In[12]: max([len(x) for x in list(my_df.columns)])
Out{12]: 47
Das ist alles mit Pandas 0.11 und die neueste stabile Version von IPython, Python und HDF5.
Das Problem ist Ihr Index. Sind sie alle 0? das ist wirklich merkwürdig. Kannst du ein Beispiel deines Rahmens zeigen? – Jeff
im Allgemeinen möchten Sie viel mehr Zeilen als Spalten haben; hdf5 basiert auf Zeilen. Versuchen Sie, die Transponierung Ihres Rahmens zu speichern – Jeff