問題タブ [hdfstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1052 参照

python - 追加が失敗したときに pandas hdfstore テーブルを効率的に再構築する方法

私はパンダの hdfstore を使用して、進行中の反復プロセスからデータ フレームに取り組んでいます。各反復で、hdfstore のテーブルに追加します。おもちゃの例を次に示します。

hdfstore_append 関数は、hdfstore.append がスローするさまざまな例外から保護し、必要に応じてテーブルを再構築します。このアプローチの問題は、ストア内のテーブルが非常に大きくなると、非常に遅くなることです。

これを行うより効率的な方法はありますか?

0 投票する
0 に答える
69 参照

python - HDFStore の並べ替えられた列で等間隔の値遷移を見つける

質問

Pandas HDFStore の並べ替えられた列内の値遷移境界を見つけるためのツールを作成したいと考えています。広範囲のデータ分布に対して、これをできるだけ速く実行したいと考えています。

並べ替えられた大きな列が与えられた場合

等間隔の場所をいくつか選択します

これらから、値の遷移がある次のポイント、つまり次の値が現在の値と異なる場所に右に移動したい

取得するデータの分布に関係なく、これを迅速かつ確実に実行したいと考えています。

いくつかの懸念

  • データが大きく、ディスクからロードするとコストがかかる場合があります。全体をメモリにロードしたくない
  • 逆に、一度に 1 つの要素をロードすると非常に遅くなると思われるので、おそらく 100 行程度のチャンクを取り込みたいと考えています。ここでの良い経験則は何ですか?
  • 非常に多くの列がある場合があります。1 つの列しか気にしない場合、不要なコストを回避するにはどうすればよいですか (HDFStore が行指向であることはわかっていますが、ここには何か賢いものがあるかもしれません)。
  • 非常に長い並べ替えられたシーケンス (数十万の要素) に遭遇する可能性があります
0 投票する
1 に答える
1342 参照

python - Pandas HDFStore の奇妙な動作

これには非常に混乱しています。同じノートブック サーバーから 2 つのスクリプトを実行しています。同じフォルダーに HDFStore がありますが、一方のスクリプトでは空に見え、もう一方のスクリプトではそうではありません。両方のノートブックで実行される同じコードを次に示します。

NB 1 を返します: 'E:\DoingDataScience\Identify\Scripts'

NB 2 を返す: 'E:\DoingDataScience\Identify\Scripts'

NB 1 を返します。

NB 2 を返します。

すべての状況は同じに見えます。Pandas DF のソースを追跡しますか? NB 1がファイルを作成したため、NB 1によってすでにファイルが開かれている可能性があると思いました。ただし、NB 1 を強制終了して NB 2 を再起動しても、何も起こりませんでした。

編集: os.stats を追加:

NB 1 と NB 2 の両方:

更新: 再起動すると、新しいエラーが発生します:

HDF5ExtError: HDF5 エラー バック トレース

ファイル「C:\aroot\work\hdf5-1.8.15-patch1\src\H5F.c」、行 604、H5Fopen でファイル「C:\aroot\work\hdf5-1.8.15-patch1\」を開けませんsrc\H5Fint.c」、1085 行目、H5F_open でスーパーブロック ファイルを読み込めません「C:\aroot\work\hdf5-1.8.15-patch1\src\H5AC.c」、1320 行目、H5AC_protect H5C_protect() が失敗しました。ファイル「C:\aroot\work\hdf5-1.8.15-patch1\src\H5C.c」、行 3574、H5C_protect はエントリ ファイル「C:\aroot\work\hdf5-1.8.15-patch1」を読み込めません\src\H5C.c", line 7954, in H5C_load_entry エントリー ファイル "C:\aroot\work\hdf5-1.8.15-patch1\src\H5Fsuper_cache.c", line 476, in H5F_sblock_load truncated file: eof = 800、sblock->base_addr = 0、

HDF5 エラー バック トレースの終了

ファイル「data_test.h5」を開く/作成できません

0 投票する
1 に答える
521 参照

python-3.x - pandas HDFStore への書き込みで min_itemsize 例外を処理する方法

データから作成した dfs を格納するために pandas HDFStore を使用しています。

エラーを受け取りました:

関連する列に min_itemsize を設定できることがわかりましたが、発生する最大長と問題が発生するすべての列がわからないため、これは実行可能な解決策ではありません。

この例外を自動的にキャッチして、発生した各アイテムを処理するソリューションはありますか?

0 投票する
1 に答える
1148 参照

python - 複数のオブジェクトを HDFStore グループに格納する

複数のオブジェクトを HDFStore に格納したいが、グループ化して整理したい。次のようなもの:

0 投票する
0 に答える
307 参照

python - pandas.HDFStore.append_to_multiple with pandas.MultiIndex

を使用して 2 つのテーブルに DataFrame を書き込み、pandas.HDFStore.append_to_multipleそれを で読み返しますpandas.HDFStore.select_as_multipleが、余分な行を含む DataFrame を取得します。

それから私はそれを読み返しました:

df2等しいと期待しdfていますが、余分な行があります。デバッガーをステップ実行すると、pytables.py に次の行が表示されます。

これは、DataFrame が不適切に再インデックスされる場所です。これは、元の DataFrame のインデックスに重複があるためと思われますが、それが私のデータの現実です。この関数は、DataFrame が重複するインデックス値を持たないようにする必要がありますか? MultiIndex に別のレベルを追加して、インデックスに重複がないようにする簡単な方法はありますか?

削除すると正常に動作しますdropna=True:

Windows x64 Python 2.7 パンダ 0.18.1

0 投票する
1 に答える
1121 参照

python - Pandas HDFStore.create_table_index で選択クエリの速度が向上せず、より良い検索方法を探しています

HDFStore を作成しました。HDFStore には、df2 つの列を持つテーブルであるグループが含まれています。最初の列は astringで、2 番目の列はDateTime(ソート順になります) です。ストアは、次の方法を使用して作成されています。

HDF5 ファイルが作成されたら、次の方法を使用してテーブルをクエリします。

したがって、基本的にこれには13.2秒かかります。次に、次を使用してこの列にインデックスを追加しました

そして、もう一度同じクエリを実行しましたが、今回は次の結果が得られました:-

以上のことから、パフォーマンスに大きな改善は見られないように思えます。それで、私の質問は、クエリを高速化するためにここで他に何ができるか、または何か間違っていることがありますか?

0 投票する
2 に答える
6982 参照

python - Pandas DataFrame を HDF5 PyTables テーブル (または CArray、EArray など) として保存するにはどうすればよいですか?

次のパンダデータフレームがあります。

HDFStoreこれで、オブジェクトをファイルに書き込むために使用できdfます (キーと値のペアを Python 辞書に追加するように)。

http://pandas.pydata.org/pandas-docs/stable/io.html

内容を見ると、このオブジェクトはframe.

出力

ただし、インデックスを使用するには、これをtableオブジェクトとして保存する必要があります。

私のアプローチは、HDFStore.put()ieを試すことでした

ただし、これは次のエラーで失敗します。

Pandas Dataframes を PyTables テーブルとして保存するにはどうすればよいですか?