【发布时间】:2017-09-14 22:52:49
【问题描述】:
我想将df.groupby() 与apply() 结合使用,将函数应用于每个组的每一行。
我通常使用以下代码,它通常可以工作(注意,这是没有groupby()):
df.apply(myFunction, args=(arg1,))
使用groupby(),我尝试了以下方法:
df.groupby('columnName').apply(myFunction, args=(arg1,))
但是,我收到以下错误:
TypeError: myFunction() 得到了一个意外的关键字参数 'args'
因此,我的问题是:如何将groupby() 和apply() 与需要参数的函数一起使用?
【问题讨论】:
-
这适用于
df.groupby('columnName').apply(myFunction, ('arg1')) -
@Zero 这是一个很好的答案,因为它与 OP 尝试的解决方案非常相似,并且不需要 lambda。我建议您将其发布为答案。
-
@Zero,我和 OP 有同样的问题,但这对我不起作用——我仍然得到与 OP 相同的错误。另外,我可以问一下为什么您的评论应该有效,为什么 OP 的方法(与我的方法相同)无效?我没有发现它在任何地方都有记录
-
尝试
.apply(myFunction, args = ('arg1',)注意,在arg1之后。 -
其实我自己试了下也没用...
标签: python pandas dataframe apply pandas-groupby