【发布时间】:2018-01-01 23:23:19
【问题描述】:
我有这个功能:
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')
我显然给出了两个参数:数据框行和参数。那么为什么我会收到错误消息?
【问题讨论】:
标签: python pandas typeerror apply