web-dev-qa-db-fra.com

fichier hdf5 vers pandas dataframe

J'ai téléchargé un ensemble de données qui est stocké dans des fichiers .h5. J'ai besoin de ne garder que certaines colonnes et de pouvoir y manipuler les données.

Pour ce faire, j'ai essayé de le charger dans un dataframe pandas. J'ai essayé d'utiliser:

pd.read_hdf(path)

Mais je reçois: No dataset in HDF5 file.

J'ai trouvé des réponses sur SO ( lire le fichier HDF5 à pandas DataFrame avec conditions ) mais je n'ai pas besoin de conditions, et la réponse ajoute des conditions sur la façon dont le fichier a été écrit, mais je ne suis pas le créateur du fichier, donc je ne peux rien y faire.

J'ai également essayé d'utiliser h5py:

df = h5py.File(path)

Mais ce n'est pas facilement manipulable et je n'arrive pas à en extraire les colonnes (uniquement les noms des colonnes en utilisant df.keys()) Une idée sur la façon de procéder?

11
Graham Slick

La prise en charge de Pandas HDF nécessite que le fichier HDF soit formaté de manière très spécifique. Vous pouvez voir https://stackoverflow.com/a/33644128/41280 pour plus d'informations.

5
drj

Le moyen le plus simple de les lire en Pandas est de les convertir en h5py, puis np.array, puis dans DataFrame. Cela ressemblerait à quelque chose comme:

df = pd.DataFrame(np.array(h5py.File(path)['variable_1']))
2
Ivan Mitevski