前提・実現したいこと
複数列 複数行の値を引数に関数に与えて帰ってきた値を新しい列で追加したい
4つの引数を与える関数があります
def my_func(x1, y1, x2, y2):
長いので処理省略
return R
pandasの
x1= A列の1行め
x2=B列の1行め
y1=A列の2行め
y2=B列の2行め
を引数でmy_funcの帰ってきた値を
R列1行めに追加したい
x1= A列の2行め
x2=B列の2行め
y1=A列の3行め
y2=B列の3行め
を引数でmy_funcの帰ってきた値を
R列2行めに追加したい
:::::
と最後の行までR列に値を入れたい
見つけて試そうと思ったコード
①
def func(row):
return row['A'] + row['B'] + row['C']
import pandas as pd
df = pd.DataFrame({'A':[1,2,3],'B':[10,20,30],'C':[100,200,300]})
df['D'] = df.apply( func, axis=1)
print (df)
⬆︎2行分の書き方がよくわかりませんでした
②
import pandas as pd
df = pd.DataFrame({ 'A' : [1, 2, 3, 4, 5], 'B' : [10, 20, 30, 40, 50] })
df['D'] = list(map(lambda x, y: x + y, df['A'], df['B'].shift(-1)))
print(df)
A B D
0 1 10 21.0
1 2 20 32.0
2 3 30 43.0
3 4 40 54.0
4 5 50 NaN
⬆︎
df['A'] + df['B'].shift(-1)
1+20
2+30
3+40
4+50
df['D'] = list(map(lambda x, y: x + y, df['A'], df['B'].shift(-1)))
を変えればいいのかなまでは理解できましたが
そのさきが思うようにできませんというよりどう書いていいかわからずといったところがです
発生している問題・エラーメッセージ
TypeError: ("'Series' object is not callable", 'occurred at index A')
該当のソースコード
試したこと
df["R"] = df.apply(func1(df['A'],df['B'], df['A'].shift(-1), df['B'].shift(-1)))
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー