Las pandas no pueden leer el archivo hdf5 creado con h5py

Recibo un error de pandas cuando bash leer archivos de formato HDF5 que he creado con h5py. Me pregunto si estoy haciendo algo mal.

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') 

da un error: TypeError: no puede crear un almacenador si el objeto no existe o si se pasa un valor

Intenté especificar el conjunto de claves en ‘/ ceros’ (como lo haría con h5py al leer el archivo) sin suerte.

Si uso pandas.HDFStore para leerlo, me devuelvo una tienda vacía:

 store = pd.HDFStore('test.h5') >>> store  File path: test.h5 Empty 

No tengo problemas para leer el archivo recién creado con h5py:

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

Usando estas versiones:

 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' 

Muchas gracias de antemano, Masha

He trabajado un poco en el módulo pytables en pandas.io y, por lo que sé, la interacción de pandas con archivos HDF está limitada a estructuras específicas que los pandas entienden. Para ver cómo se ven, puedes probar

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

Si abre ‘test.h5’ en HDFView , verá una ruta /test con 4 elementos necesarios para recrear el DataFrame .

HDFView de prueba.h5

Entonces, creo que su única opción para leer en matrices NumPy es leerlas directamente y luego convertirlas en objetos Pandas.