gpt4 book ai didi

python - Pandas 集团 : apply a function with two arguments

转载 作者:太空狗 更新时间:2023-10-30 00:38:25 31 4
gpt4 key购买 nike

通常在使用 .apply() 方法时,会传递一个只接受一个参数的函数。

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() 在后台神奇地完成的。

最佳答案

可以通过apply传递关键字参数

df.groupby(['ColumnA', 'ColumnB']).apply(somefunction, column_name='col')

MCVE

df = pd.DataFrame(dict(A=list(range(2)) * 5, B=range(10)[::-1]))

def f(df, arg1):
return df * arg1

df.groupby('A').apply(f, arg1=3)

A B
0 0 27
1 3 24
2 0 21
3 3 18
4 0 15
5 3 12
6 0 9
7 3 6
8 0 3
9 3 0

关于python - Pandas 集团 : apply a function with two arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43615962/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com