質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

Q&A

0回答

2088閲覧

Vaexライブラリでのdataframe(中身は行列)の演算の方法がわかりません

SST8897

総合スコア155

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

0グッド

1クリップ

投稿2019/07/14 17:15

前提・実現したいこと

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です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問