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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

Q&A

解決済

1回答

1280閲覧

Pandas DataFrameで各行に対して関数を適用させる

sont

総合スコア35

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

0グッド

0クリップ

投稿2021/05/28 11:04

python

1import pandas as pd 2 3df = pd.DataFrame({ 4"A": [1,2,3,4], 5"B": [5,6,7,8], 6})

上記のようなDataFrameのデータがあるときに、各行に対して、下記のような関数を適用させて、その結果を、df["Result"] としてDataFrameに格納したいです。

python

1def myFunc(val1: float, val2: float) -> float { 2 # val1 と val2 を使った何らかの計算式とその結果を返す関数 3 return xxx 4}

for文を使えばできることは理解しているのですが、データが巨大になるとfor文だと遅いので、applyapplyMapといったPandasの関数を利用できないかと思ったのですが、調べてもわかりませんでした。

どなたかお分かりになる方いたら教えていただけないでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

applyaxis=1を指定するとできます。
参考:pandasで要素、行、列に関数を適用するmap, applymap, apply

Python

1import pandas as pd 2 3def myFunc(val1: float, val2: float) -> float: 4 xxx = val1 + val2 5 return xxx 6 7df = pd.DataFrame({ 8"A": [1,2,3,4], 9"B": [5,6,7,8], 10}) 11 12df["Result"] = df.apply(lambda row: myFunc(row[0], row[1]), axis=1) 13print(df) 14""" 15 A B Result 160 1 5 6 171 2 6 8 182 3 7 10 193 4 8 12 20"""

投稿2021/05/28 11:17

can110

総合スコア38260

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問