問題タブ [vaex]
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 - dask と vaex 間のエクスポートとインポートの橋渡し
私はいくつかの分析のために vaex と dask と共同で作業しています。分析の最初の部分では、 を使用して何らかの処理を行いdask.dataframe
ます。私の意図は、計算したデータフレームを vaex が読み取るものにエクスポートすることです。データを hdf や arrow などのメモリ マップ可能な形式にエクスポートしたいと考えています。
dask を使用すると、hdf および寄木細工のファイルにエクスポートできます。Vaex では、hdf および arrow としてインポートできます。どちらもcsvファイルとしてのエクスポートとインポートを許可していますが、それは避けたいです。
これまでのところ、次のオプション(および問題)があります。
- hdf5 ファイルにエクスポートすると、dask はファイルを行形式でエクスポートしますが、vaex は列形式で読み取るため、ファイルをインポートできません ( https://vaex.readthedocs.io/en/latest/faq.html)。
- データを寄木細工のファイルにエクスポートできますが、vaex からデータを読み取る方法がわかりません。ファイルを矢印テーブルに変換する SO でいくつかの答えを見てきましたが、これにはテーブルをメモリにロードする必要があります。テーブルが大きすぎてメモリに収まらないため、これはできません。
もちろん、csv にエクスポートして vaex にチャンクでロードし、それを列形式の hdf にエクスポートすることもできますが、それが大きなオブジェクト用の 2 つのモジュールの目的であるべきではないと思います。
欠落しているオプションはありますか?それは、テーブル全体をメモリにロードしたり、データセットを 2 回読み書きする必要なく、2 つのモジュールを「ブリッジ」するのに互換性がありますか?
python - vaex がピリオドを含む列名を変更するのはなぜですか?
vaex を使用しているときに、予期しないエラーが発生しましNameError: name 'column_2_0' is not defined
た。
調査の結果、データ ソース (HDF5 ファイル) で問題の原因となっている列名が実際に呼び出されcolumn_2.0
、vaex によって名前が変更されていることがわかりましたcolumn_2_0
が、列名を使用して操作を実行するとエラーが発生します。このエラーを再現する簡単な例を次に示します。
この場合、vaex はすでに使用されている に名前を変更しようとしているように見えるabc.1
ためabc_1
、代わりに を使用してしまいますabc_1_1
。
のように列の名前を変更できることはわかっていますがdfv.rename('abc_1_1', 'abc_dot_1')
、(a) vaex が思いついた列名が既に使用されているこの例のように、名前の競合のための特別なロジックを導入する必要があり、(b) したくありません。ピリオドを含む列があるたびに手動でこれを行う必要があります。
ソースデータのすべての列名にピリオドを使用しないように強制することもできますが、データが一般的に由来する可能性のあるパンダやその他のソースにはこの制限がないことを考えると、これはストレッチのように思えます。
上記の2つ以外に、この問題に対処するためのアイデアは何ですか?
python - vaex 列名の変更
こんにちは、Python で Vaex を使い始めたばかりです。乱雑な列名を持つデータセットがあります。スペースを「_」に置き換えようとしています。
パンダでは、 df.column = df.columns.str.replace(' ', '_') ができます
しかしVaexでは
次のエラーが表示されます
AttributeError トレースバック (最新の呼び出しが最後) ----> 1 df_new = df.column_names.str.replace('\s', '_', regex=True) AttributeError: 'list' オブジェクトに属性 'str' がありません
誰かが私が間違っているかもしれないことを知っていますか?
ありがとうマイク