繁体   English   中英

如何将参数动态传递给DataFrame.apply()lambda函数?

[英]How can I pass arguments dynamically to a DataFrame.apply() lambda function?

我正在尝试为Dataframe运行Pandas apply()方法来创建新列,如下所示:

df['new_column'] = df.groupby(groupby).apply(lambda x: some_function(x, df['existing_column']))

因此,基本上,我试图相对于df['existing_column']存储为每一行的值动态地传递some_function的第二个参数(值不同)。

我得到的错误是常见的TypeError: 'Series' objects are mutable, thus they cannot be hashed 有适当的方法吗? 我尝试为每行执行一个for循环,但这会浪费我的CPU。

我建议使用transform如果需要每个组按existing_column新列:

df['new_column'] = df.groupby('col')['existing_column'].transform(lambda x: funct(x, par))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM