通常在使用.apply()
方法时,会传递一个函数,该函数只需要一个参数。Pandas GroupBy:应用带两个参数的函数
def somefunction(group):
group['ColumnC'] == group['ColumnC']**2
return group
df.groupby(['ColumnA', 'ColumnB']).apply(somefunction)
这里somefunction
被应用于每个group
,然后将其返回。基本上我使用这个example here。
我希望有能力事先未指定列名称ColumnC
。将它作为参数somefunction
传递会使代码更加灵活。
def somefunction(group, column_name):
group[column_name] == group[column_name]**2
return group
df.groupby(['ColumnA', 'ColumnB']).apply(somefunction)
有什么办法,使这项工作?我不能通过group
到somefunction
,因为在后台神奇地完成了.apply()
。
这比预期的更容易。谢谢! –
@mischi很高兴我能帮到你。 – piRSquared