2015-11-10 7 views
11

Ich bekomme Pandas Fehler, wenn ich versuche, HDF5-Format-Dateien zu lesen, die ich mit h5py erstellt habe. Ich frage mich, ob ich nur etwas falsch mache?Pandas kann nicht lesen hdf5 Datei erstellt mit h5py

import h5py 
import numpy as np 
import pandas as pd 
h5_file = h5py.File('test.h5', 'w') 
h5_file.create_dataset('zeros', data=np.zeros(shape=(3, 5)), dtype='f') 
h5_file.close() 
pd_file = pd.read_hdf('test.h5', 'zeros') 

gibt einen Fehler: Typeerror: eine storer nicht schaffen kann, wenn das Objekt nicht ist, werden

noch ein Wert bestehenden ging ich zu ‚/ Nullen‘ Schlüsselsatz angeben versucht (wie ich es tun würde, mit h5py beim Lesen der Datei) ohne Glück.

Wenn ich pandas.HDFStore verwenden Sie es in lesen, bekomme ich einen leeren Speicher zurück:

store = pd.HDFStore('test.h5') 
>>> store 
<class 'pandas.io.pytables.HDFStore'> 
File path: test.h5 
Empty 

Ich habe keine Probleme gerade erstellte Datei zurück mit h5py Lesen:

h5_back = h5py.File('test.h5', 'r') 
h5_back['/zeros'] 
<HDF5 dataset "zeros": shape (3, 5), type "<f4"> 

diese Verwendung Versionen:

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 

pd.__version__ 
'0.16.2' 
h5py.__version__ 
'2.5.0' 

Vielen dank im Voraus, Masha

+0

Siehe auch https://github.com/pandas-dev/pandas/issues/9539 –

Antwort

9

Ich habe ein wenig an der pytables-Modul in pandas.io gearbeitet und von dem, was ich weiß, Pandas Interaktion mit HDF-Dateien ist auf bestimmte Strukturen, die Pandas versteht begrenzt. Um zu sehen, was diese aussehen, können Sie

import pandas as pd 
import numpy as np 
pd.Series(np.zeros((3,5),dtype=np.float32).to_hdf('test.h5','test') 

versuchen Wenn Sie open ‚test.h5‘ in HDFView, werden Sie einen Pfad /test mit 4 Artikel sehen, die erforderlich sind, um die DataFrame neu erstellen.

HDFView of test.h5

Also ich denke, die einzige Möglichkeit in NumPy Arrays zum Lesen ist, sie in direkt zu lesen und dann diese Objekte zu Pandas konvertieren.

+0

Ich wollte zu Pandas nähen, aber sieht aus, als ob ich h5py Abhängigkeit behalten muss. Vielen Dank für Ihre Antwort! –

Verwandte Themen