如何解决如何检查“ Array”类型的python pandas数据框列中的AND和OR条件?
我创建了一个函数来检查熊猫数据框的数组列中的每个值,然后相应地将值分配给新列。根据食物摄入量基本预测饮食是否健康。
我编写的功能:
创建一个名为“ diet_status”的新列,并根据数组类型为“ food_intake”的列中的值分配该值。
def diet(a):
if 'fruits' in a:
y = 'healthy'
elif 'vegetables' in a:
y = 'healthy'
elif 'chips' in a:
y = 'unhealthy'
elif 'sweets' in a:
y = 'unhealthy'
else
y = 'NA'
return y
df["diet_status"] = df["food_intake"].apply(diet)
如何在此处检查多个条件?例如,如果“ food_intake”数组包含“(水果和蔬菜)AND(薯片或糖果)”,我想将其命名为“ balanced”。需要基本检查数组中值的AND / OR条件。谁能帮我这个忙。
解决方法
因为在这里使用标量,必须使用or
和and
,而不是|
和&
:
def diet(a):
m1 = ('fruits' in a) or ('vegetables' in a)
m2 = ('chips' in a) or ('sweets' in a)
if m1:
y = 'healthy'
elif m2:
y = 'unhealthy'
elif m1 and m2:
y = 'balanced'
else
y = 'NA'
return y
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。