Ho un dataframe in Pandas:Impossibile salvare dataframe a HDF5 ("messaggio oggetto intestazione è troppo grande")
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)
Quando cerco di salvare questo disco:
store = pd.HDFStore(p_full_h5)
store.append('my_df', my_df)
I get:
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''.
Perché?
Nota: Nel caso in cui le cose, i nomi delle colonne dataframe sono semplici stringhe di piccole dimensioni:
In[12]: max([len(x) for x in list(my_df.columns)])
Out{12]: 47
Questo è tutto con i panda 0,11 e l'ultima versione stabile di IPython, Python e HDF5.
il problema è il tuo indice. sono tutti 0? è davvero strano puoi mostrare un campione del tuo frame? – Jeff
in generale si desidera avere molte più righe rispetto alle colonne; hdf5 è basato su una riga. prova a memorizzare la trasposizione del tuo frame – Jeff