問題タブ [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.
python - 追加が失敗したときに pandas hdfstore テーブルを効率的に再構築する方法
私はパンダの hdfstore を使用して、進行中の反復プロセスからデータ フレームに取り組んでいます。各反復で、hdfstore のテーブルに追加します。おもちゃの例を次に示します。
hdfstore_append 関数は、hdfstore.append がスローするさまざまな例外から保護し、必要に応じてテーブルを再構築します。このアプローチの問題は、ストア内のテーブルが非常に大きくなると、非常に遅くなることです。
これを行うより効率的な方法はありますか?
python - HDFStore の並べ替えられた列で等間隔の値遷移を見つける
質問
Pandas HDFStore の並べ替えられた列内の値遷移境界を見つけるためのツールを作成したいと考えています。広範囲のデータ分布に対して、これをできるだけ速く実行したいと考えています。
例
並べ替えられた大きな列が与えられた場合
等間隔の場所をいくつか選択します
これらから、値の遷移がある次のポイント、つまり次の値が現在の値と異なる場所に右に移動したい
取得するデータの分布に関係なく、これを迅速かつ確実に実行したいと考えています。
いくつかの懸念
- データが大きく、ディスクからロードするとコストがかかる場合があります。全体をメモリにロードしたくない
- 逆に、一度に 1 つの要素をロードすると非常に遅くなると思われるので、おそらく 100 行程度のチャンクを取り込みたいと考えています。ここでの良い経験則は何ですか?
- 非常に多くの列がある場合があります。1 つの列しか気にしない場合、不要なコストを回避するにはどうすればよいですか (HDFStore が行指向であることはわかっていますが、ここには何か賢いものがあるかもしれません)。
- 非常に長い並べ替えられたシーケンス (数十万の要素) に遭遇する可能性があります
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」を開く/作成できません
python-3.x - pandas HDFStore への書き込みで min_itemsize 例外を処理する方法
データから作成した dfs を格納するために pandas HDFStore を使用しています。
エラーを受け取りました:
関連する列に min_itemsize を設定できることがわかりましたが、発生する最大長と問題が発生するすべての列がわからないため、これは実行可能な解決策ではありません。
この例外を自動的にキャッチして、発生した各アイテムを処理するソリューションはありますか?
python - 複数のオブジェクトを HDFStore グループに格納する
複数のオブジェクトを HDFStore に格納したいが、グループ化して整理したい。次のようなもの:
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
python - Pandas HDFStore.create_table_index で選択クエリの速度が向上せず、より良い検索方法を探しています
HDFStore を作成しました。HDFStore には、df
2 つの列を持つテーブルであるグループが含まれています。最初の列は astring
で、2 番目の列はDateTime
(ソート順になります) です。ストアは、次の方法を使用して作成されています。
HDF5 ファイルが作成されたら、次の方法を使用してテーブルをクエリします。
したがって、基本的にこれには13.2秒かかります。次に、次を使用してこの列にインデックスを追加しました
そして、もう一度同じクエリを実行しましたが、今回は次の結果が得られました:-
以上のことから、パフォーマンスに大きな改善は見られないように思えます。それで、私の質問は、クエリを高速化するためにここで他に何ができるか、または何か間違っていることがありますか?
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 テーブルとして保存するにはどうすればよいですか?