前提・実現したいこと
VaexというPythonのデータフレームライブラリで、dataframe(vaex.dataframe.DataFrameArrays
)の演算がしたいです。
発生している問題・エラーメッセージ
pandasと同じ調子で計算しようとすると、エラーがでてしまいます(詳細はソースコードの部分にあります)
dataframe同士を足そうとしたりすると次のエラーがでます。
TypeError: unsupported operand type(s) for +: 'DataFrameArrays' and 'DataFrameArrays
dataframeに数字を足そうとすると次のエラーが出ます。
TypeError: unsupported operand type(s) for +: 'DataFrameArrays' and 'int'
該当のソースコード
例となる元データsample.csv
。これと同じ形式のものが複数あります。
csv
1domain,y2017,y2018 2hoge.com,1,0 3hage.com,0,3 4toge.net,5,8
具体的には、pandasだと以下のように行います。
python
1import pandas as pd 2df_1 = pd.read_csv("sample1.csv").set_index("domain") 3df_2 = pd.read_csv("sample2.csv").set_index("domain") 4 5## y2017とかy2018といった列の数字が足し合わされる 6df_1 + df_2 7 8## 全部の列に同じ数字をたす 9df_1 + 1
Vaexで同じことをやろうとしましたが、できないようです
python
1import pandas as pd 2import vaex as vx 3 4df_1 = pd.read_csv("sample1.csv").set_index("domain") 5df_2 = pd.read_csv("sample2.csv").set_index("domain") 6 7df_v_1 = vx.from_pandas(df_1) 8df_v_2 = vx.from_pandas(df_2) 9 10## y2017とかy2018といった列の数字が足し合わされる 11## ..わけではなく、 `TypeError: unsupported operand type(s) for +: 'DataFrameArrays' and 'DataFrameArrays' `になります 12df_v_1 + df_v_2 13 14## 全部の列に同じ数字をたす 15## ..わけではなく、 `TypeError: unsupported operand type(s) for +: 'DataFrameArrays' and 'int'`になります 16df_v_1 + 1
試したこと
vaexのチュートリアルにあるように、列ごとだと計算できるようです。
このときのdf_v_1.y_2017
などの型はvaex.expression.Expression
です。
python
1df_v_1.y2017 + df_v_2.y2017 #エラーなし 2 3df_v_1.y2017 + 1 #エラーなし
補足情報(FW/ツールのバージョンなど)
Anaconda3を使っています。OSはCentOS7。
Pythonは3.7.3、Vaexは v1.0.0b6です。
あなたの回答
tips
プレビュー