Lambda functions are working perfectly:个
funct = (lambda a,aa,aaa: (a-aa)/aaa if aa>0 else a/aaa)
print(funct(200,100,2))
我想要做的是将其应用于DataFrame:df[['a','aa','aaa']]
使用.apply()
Error: <lambda> missing 2 required positional arguments: aa and aaa
Lambda functions are working perfectly:个
funct = (lambda a,aa,aaa: (a-aa)/aaa if aa>0 else a/aaa)
print(funct(200,100,2))
我想要做的是将其应用于DataFrame:df[['a','aa','aaa']]
使用.apply()
Error: <lambda> missing 2 required positional arguments: aa and aaa
使用列表理解:
df['result'] = [funct(*x) for x in zip(df['a'], df['aa'], df['aaa'])]
但是考虑到您的函数,您应该使用向量代码:
df['result'] = np.where(df['aa']>0, (df['a']-df['aa'])/df['aaa'],
df['a']/df['aaa'])
示例:
a aa aaa result
0 2 -1 3 0.666667
1 2 1 3 0.333333