2017-07-25 2 views
0

Ich möchte agg nach groupby und übergeben in zwei Parameter, param1 und param2. Ich habe Folgendes versucht, bin aber gescheitert. Was ist der richtige Weg? Vielen Dank.pass Argument zu groupby und agg in Pandas

def myfun(x, param1, param2): 
    #some calculations 
    return result 

B = A.groupby([A.index, 'time']).agg({'salary': myfun, param1, param2}) 
+1

Wenn Sie mit Lambda-Ausdrücke in Ordnung sind, '.agg ({ 'Gehalt': lambda x: myfun (x, param1, param2)}) sollte funktionieren – ayhan

+0

Danke, ayhan. Du hast recht. – Frankie

Antwort

1

Verwenden Sie diese Syntax:

param1=1 
param2=100 
A.groupby([A.index,'time'])['salary'].agg(myfun, param1, param2) 

oder als @ayhan schlägt vor:

A.groupby([A.index,'time']).agg({'salary':lambda x: myfunc(x, param1, param2)}) 
+0

Danke, Scott. Es klappt. – Frankie