Chegando bem tarde a isso, achei que isso poderia ser útil se você precisar que os metadados persistam na E / S. Há um pacote relativamente novo chamado h5io que estou usando para fazer isso.
Ele deve permitir que você faça uma leitura / gravação rápida de HDF5 para alguns formatos comuns, um deles sendo um dataframe. Portanto, você pode, por exemplo, colocar um dataframe em um dicionário e incluir metadados como campos no dicionário. Por exemplo:
save_dict = dict(data=my_df, name='chris', record_date='1/1/2016')
h5io.write_hdf5('path/to/file.hdf5', save_dict)
in_data = h5io.read_hdf5('path/to/file.hdf5')
df = in_data['data']
name = in_data['name']
etc...
Outra opção seria examinar um projeto como o xray , que é mais complexo em alguns aspectos, mas acho que permite que você use metadados e é muito fácil de converter em DataFrame.