2017-08-03 59 views
1

是否可以將DataFrame傳遞給apply函數?傳遞數據框以將函數熊貓作爲參數

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

這兩個DataFrame的長度不一樣。

+0

我假設'return df2'應該縮進? – Alexander

+4

'args =(df2,)'是的,這是可能的。但是,有90%的機會可以做到這一點,而不是你正在做的事情。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅ感謝您的提示。建議更好的方法? –

回答

3

df.apply文檔:

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

沿 數據幀的輸入軸適用功能。

argstuple

位置參數傳遞除了 陣列/系列的功能。

正確的方法是通過你的論點在一個元組,像這樣:

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

你的代碼的進一步改善將是可能的,如果它被稱爲你想達到的目標。