gpt4 book ai didi

python - Pandas Dataframe.apply() 因提供太多参数而引发类型错误

转载 作者:行者123 更新时间:2023-12-01 02:45:05 24 4
gpt4 key购买 nike

我有这个功能:

def function(row,args):
array = np.array(row['Revenue'+args[0]:'Revenue'+str(args[1])]).astype(float)
if np.mean(array) < (5000/12):
return 'XXS'
if np.mean(array) < (10000/12):
return 'XS'
if np.mean(array) < (25000/12):
return 'S'
if np.mean(array) < (50000/12):
return 'M'
if np.mean(array) < (250000/12):
return 'L'
if np.mean(array) < (750000/12):
return 'XL'
if np.mean(array) >= (750000/12):
return 'XXL'

我想使用 Pandas.Dataframe.apply() 应用此函数。所以我使用 args,因为我需要传递两个额外的参数。

df.apply(function,axis=1,args=(VARIABLE1,VARIABLE2))

不知怎的,我得到了错误:

TypeError: ('klantschaling() takes 2 positional arguments but 3 were given')

我显然给出了两个参数:数据框行和参数。那么为什么我会收到错误消息?

最佳答案

你有两个选择。您可以修改函数签名,也可以在 df.apply 中传递元组。

第一个选项是重新定义您的函数,如下所示:

def function(row, arg1, arg2):
...

然后按原样调用df.apply。第二种更简单的替代方法是将参数包装在可迭代中:

df.apply(function, axis=1, args=([VARIABLE1, VARIABLE2], ))

或者,

df.apply(function, axis=1, args=((VARIABLE1, VARIABLE2), ) )

关于python - Pandas Dataframe.apply() 因提供太多参数而引发类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45330312/

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