【发布时间】:2018-07-05 17:26:41
【问题描述】:
我正在尝试使用
创建一个新功能df_transactions['emome'] = df_transactions['emome'].apply(lambda x: 1 if df_transactions['plan_list_price'] ==0 & df_transactions['actual_amount_paid'] > 0 else 0).astype(int)
但它会引发错误
ValueError:Series 的真值不明确。使用 a.empty, a.bool()、a.item()、a.any() 或 a.all()。
当 plan_list_price 为 0 且 actual_amount_paid 为 >0 时,我如何创建一个返回 1 的新列,否则为 0?
我仍想使用 pandas 申请。
【问题讨论】:
-
"我还想使用 pandas apply。"为什么?
-
因为我之前遇到过几次这个问题,我想学习使用pandas apply的正确方法。
-
正确的使用 apply... 的方法是根本不使用它;)另外,原因是你使用了 & 当你应该使用
and。不要互换使用它们。&仅在数据帧上下文中为逻辑 AND。 -
问题本身并不适用。这是您对如何使用多个逻辑条件的误解,其中存在重复。
-
我试过了,还是一样的错误