[英]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.