2016-11-01 10 views
1

私は2つのスクリプトを書いています。Python/Pandas HDF5 NameErrorの問題

最初のスクリプトは、一度だけ実行するように設計され、作成されたスクリプト内で次のコードを使用してHDF5ファイルに保存されdf_emptystorage.h5という名前の大きな空のデータフレーム:

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

これは完全に機能します。

私の次のスクリプトは、すべて30分を実行して、30分ごとに生成さCSVファイルからデータを取得するように設計されており:

  1. 新しいデータフレームDFにこのデータを置きます。

  2. インポートDF2としてstorage.h5からデータフレーム。

  3. マージインデックス組合のコマンドを使用してDFDF2DF3に。

  4. 新しいデータフレームをstorage.h5に保存して、前のファイルを上書きします。

次のようにコードの関連セクションは次のとおりです。

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) 

これは私がJupyterノートに順次2つのスクリプトを実行する場合(私はアナコンダの最新バージョンをインストールしているし、これを実行していますうまく機能Windows 7マシンで)。

ただし、コマンドプロンプトから実行すると、問題が発生します。最初のスクリプトはエラーなしで実行されます。

トレースバック(最新の呼び出しの最後)::フォーマット=」 hdf.put( 'D1'、DF3で ファイル "myfile.py"、ライン64、ただし、2番目のスクリプトは次のエラーをスローしますテーブル」=真、data_columns)は NameError:名 『HDFは、』開いているファイルを、残りの クロージング定義されていません。storage.h5 ... donestorage.h5 ...

行わ誰が何を私のように何か提案を持っています間違っている可能性がありますか?

答えて

1

私は十分ではない評判を持っているので、私は、

をコメントすることはできませんが、あなたがHD5の店をオープンしている間、変数

にそれを割り当てられている可能性があることができ変数を使用して新しいデータを入れてみてください

hdf?

+0

はい!ありがとうございました。よく目撃された。それはトリックをしたようだ。 – pottolom