我在“应用”熊猫的自定义函数时遇到问题。当我测试函数时,直接传递它的工作值并正确返回响应。但是,当我试图传递列值时,我收到错误“序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。”
def feez (rides, plan):
pmt4 = 200
inc4 = 50 #number rides included
min_rate4 = 4
if plan == "4 Plan":
if rides > inc4:
fee = ((rides - inc4) * min_rate4) + pmt4
else:
fee = pmt4
return (fee)
else:
return 0.1
df['fee'].apply(feez(df.total_rides, df.plan_name))
直接传递值有效,即feez(800,“4 Plan”),返回3200
但是,当我尝试应用上面的函数时会收到错误。
我是个新手,怀疑我的语法写得不好。非常感谢你的任何想法。蒂亚。伊莱
apply
意味着一次只能处理一行,因此在处理时传递整个列将不起作用。在这些情况下,最好使用lambda
。然而,可能有更快的方法来做到这一点。一种方法是使用
np.vectorize
。另一种是使用np.where
。选项1
np.vectorize
选项2
嵌套
np.where
相关问题 更多 >
编程相关推荐