2017-08-03 43 views
1

このような関数applyにDataFrameを渡すことは可能ですか?データフレームを渡して引数として関数pandasを渡す

df2 = df1.apply(func,axis=1,args=df2) 
def func(df1,df2): 
    # do stuff in df2 for each row of df1 
    return df2 

2つのDataFramesの長さは同じではありません。 df.applyドキュメントから

+0

'return df2'は字下げする必要がありますか? – Alexander

+4

'args =(df2、)'はい、可能です。しかし、あなたがやっていることよりもこれを行う良い方法の90%の可能性があります。 –

+0

@cᴏʟᴅshヒントのおかげで。より良い方法のための提案? –

答えて

3

DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)

は、データフレームの入力軸に沿って機能を適用します。

argstuple

位置引数は アレイ/直列に加えて関数に渡します。

正しい方法は、このように、タプルであなたの引数を渡すことです:それはあなたが達成しようとしているものが知られていた場合、あなたのコードに

df1.apply(func, axis=1, args=(df2,)) 

さらなる改善が可能です。

関連する問題