2016-11-01 1 views
1

J'ai écrit deux scripts.Python/Pandas HDF5 NomErreur numéro

Le premier script est conçu pour fonctionner une seule fois, et crée un grand vide nommé dataframe df_empty, qui est enregistré dans un fichier HDF5, storage.h5 en utilisant le code suivant dans le script:

from pandas import HDFStore 
hdf = HDFStore('storage.h5') 
hdf.put('d1', df_empty, format='table', data_columns=True) 

Cela fonctionne parfaitement.

Mon prochain script est conçu pour fonctionner toutes les 30 minutes et prendre des données à partir de fichiers CSV demi-horaire générés et:

  1. Mettre ces données dans une nouvelle trame de données df;

  2. Importer le dataframe de storage.h5 comme DF2;

  3. Fusion df et DF2 en utilisant la commande union index dans DF3;

  4. Enregistrez la nouvelle image dans storage.h5, écrasant ainsi le fichier précédent.

La section pertinente du code est le suivant:

from pandas import HDFStore 
store = pd.HDFStore('storage.h5') 
df2 = pd.DataFrame(store['d1']) 
df3 = df.reindex(index = df2.index.union(df.index)) 
hdf.put('d1', df3, format='table', data_columns=True) 

Cela fonctionne bien si je lance les deux scripts séquentiellement dans Jupyter Notebook (j'ai installé la dernière version de Anaconda et me présente cette sur une machine Windows 7).

Cependant, lorsque je cours à partir de l'invite de commande, je rencontre des problèmes. Le premier script s'exécute sans erreurs. Cependant, le second script jette l'erreur suivante:

retraçage (appel le plus récent en dernier): Fichier "myfile.py", ligne 64, dans hdf.put ('d1', DF3, format = » Table », data_columns = true) NameError: nom 'hdf' est pas défini clôture restant fichiers ouverts: storage.h5 ... donestorage.h5 ... fait

quelqu'un at-il des suggestions quant à ce que je peut-être mal fait?

Répondre

1

Je ne peux pas commenter parce que j'ai pas assez réputation,

mais serait-il possible que vous avez ouvert le magasin hd5 et lui a attribué à la variable

magasin

pendant que vous essayez de mettre dans les nouvelles données en utilisant la variable

hdf?

+0

Oui! Je vous remercie. Bien repéré. Cela semble avoir fait l'affaire. – pottolom