問題タブ [hdf]
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 - ラムダ関数がスコープ外の変数の影響を受ける
経由で HDF5 にアクセスするpandas
と、31 個を超える選択条件を作成できないという文書化されたバグに直面することがあります。これを回避するために、選択条件を分割し、反復子のバッチを作成して、最後に結果を連結することにしました。
これが私のアプローチです:
つまり、ジェネレーターのリストを作成したいのです。呼び出すgenerator()
と、where 条件に対応する select ステートメントが返されます。
次に、これらすべてをリストに保存します。
完全を期すために、以下に `grouper() を示します。
発生する問題の 1 つは、 の定義がwhere
ラムダ関数をさかのぼって書き直すことです。2 番目のラウンドにいるとき、新しく定義されwhere
た (2 番目の に基づく) は、内部にあるジェネレーターをidCunk
置き換えます。lambda
generators[0]
この問題を回避するにはどうすればよいですか? この構造で他に注意する必要があることはありますか、またはこれを処理するより良い方法はありますか?
python - HDF5 と Python、Pandas: データの破損と読み取りエラー
そのため、Pandas DataFrames を HDF5 に保存しようとすると、奇妙なエラーが発生しますが、一貫性がありません。少なくとも半分の時間で、読み取り-プロセス-移動-書き込みサイクルの一部が失敗し、多くの場合、「HDF5 読み取りエラー」よりも明確な説明はありません。さらに悪いことに、ダウンストリームまで物事を止めない意味のないデータや破損したデータでテーブルが終了することがあります。値が桁違いにずれている (正しい値と相関していない) か、意味をなさない日付のいずれかです。 (最近のデータは 1750 年代の日付であると誤ってマークされています...など)。
現在のプロセスを経て、問題を引き起こしている可能性があると思われるものが役立つと思いました. 外観は次のとおりです。
- いくつかのテーブル (「QUERY1」と「QUERY2」と呼ぶ) を読んで、それらが最新かどうかを確認し、最新でない場合は、
- HDF5ストアにあったテーブルを「QUERY1」として取得し、代わりにHDF5ストアに「QUERY1_YYYY_MM_DD」として保存します
- そのテーブルの外部データベースで関連するクエリを実行します。それぞれは、1980 年までさかのぼる 100 から 1500 列の毎日のデータです。
- クエリ 1 の結果を新しい "QUERY1" として HDF5 ストアに格納します。
- 階層 (Pandas MultiIndex) 列を持つ QUERY1、QUERY2、...QUERYn の 1 つ以上の変換をいくつか計算します。アイテム「Derived_Frame1」などを HDF5 ストアの更新/置換で上書きします
- Windows ネットワーク ドライブ上の関連する .h5 ファイルにアクセスできる複数のユーザーが、このルーチンを実行します。通常はそうではありませんが、同時に実行される可能性があります。
問題の一部である可能性があると思われるいくつかのこと:
df.to_hdf(store, key)
を使用して「テーブル」形式を主張する代わりに、デフォルト形式 ( ) を使用しますdf.to_hdf(store, key, format='table')
)。%timeitによると、デフォルトのフォーマットは読み取りと書き込みの両方で2倍から5倍高速であるため、これを行いますネットワーク ドライブを使用して、複数のユーザーがこのルーチンを実行し、少なくとも派生フレームにアクセスできるようにします。この要件について、特に派生データフレームへの読み取りアクセスについては、いつでもできることはあまりありません。
ドキュメントから、HDF5ストア内のアイテムを繰り返し削除して再書き込みすると、奇妙なことが起こる可能性があるようです(少なくともファイルサイズを徐々に増やしますが、他に何があるかはわかりません)。たぶん、クエリのアーカイブを別のファイルに保存する必要がありますか? たぶん、更新時にメインファイル全体をnukingして置き換える必要がありますか?
そもそも HDF5 に MultiIndex 列を含むデータフレームを格納する - これが、デフォルトの形式で「警告」を表示するようですが、使用すると警告が消えるようです
format='table'
。編集:上記のルーチンを実行しているさまざまなユーザーが、さまざまなバージョンの Pandas とさまざまなバージョンの PyTables を使用している可能性もあります。
何か案は?
python - h4toh5を使用してPythonでhdf4をhdf5に変換するには?
Pythonでhdf4ファイルをhdf5に変換したいのですが、このツールh4toh5
を使用してこの問題を解決できると思いますが、Pythonで使用する方法がわかりません。
c - HDF-EOS 構成が失敗し、「C コンパイラは実行可能ファイルを作成できません」
./configure を使用して HDF-EOS C ライブラリをインストールしようとしていますが、configure の実行中に次の出力が得られます。
config.log は次のとおりです。
問題は「confdefs.h」と呼ばれるヘッダー ファイルで発生しているようで、config.log ファイルにはプログラムが失敗したことが示されています。何が問題なのかわからないので、助けていただければ幸いです。
仕様: Linux kali 4.3.0-kali1-amd64
#1 SMP Debian 4.3.3-5kali4 (2016-01-13) x86_64 GNU/Linux
ノーム 3.18.2
また、私の PATH 変数が同じ場所を複数回参照していることを気にしないでください。すぐに修正します。
python - キーと値のペアのリストを HDFStore に格納された pandas データフレームに変換する
これに似た質問がありますが、データフレームが HDFStore 内にある場合を処理するものはありません。
タイムスタンプ/キー/値アイテムのリストをデータフレームに変換し、タイムスタンプでそれぞれインデックス付けされた複数のデータフレームとして保存し、HDFStore に保存する必要があります。
コード例:
このコードの実行後、store['x']
空のままになります。
したがって、それが持続しないのには明らかに何らかの理由があります。また、このようなものがどのように機能するのかがわからないことも確かです。HDFStore内のテーブル/データフレームに追加する方法を理解すれば、ロジックを確実に理解できます。
また、データフレームをメモリ内の何らかの辞書に保持し、最後にそれらを HDFStore に割り当てることもできます。私はどういうわけか、このようにすることでメモリを節約できるという誤った考えを持っていました。おそらくそれについても間違っています。
r - Fortran の h5dcreate_f 関数が非常に多くの桁を出力するのはなぜですか?
h5files に REAL 型の変数を書き込む Fortran コードを使用しているため、このコードを使用しています。
もちろん、他の h5 関数のようなgeth5dims
.
しかし、R または HDFview のいずれかを使用して h5 ファイルを開くと、REAL 変数の精度が、Fortran REAL に期待される 7 桁ではなく、最大 20 桁以上になる理由について混乱しています。例: Fortran で変数を出力すると 0.1662154 になりますが、h5file では同じ変数が 0.166215423415234653524...
なぜこれらすべての余分な数字は、これらの数字は単なるノイズなのでしょうか? 丸め誤差の影響を受けやすい計算をさらに行うため、これは重要です。
FORMAT(F30.25)
Fortran でwrite ステートメントを使用すると、 0.0006564661744050681591034 が得られますが、RI では 0.00065646617440506816 が得られます。