问题描述
我创建了一个函数来检查熊猫数据框的数组列中的每个值,然后相应地将值分配给新列。根据食物摄入量基本预测饮食是否健康。
我编写的功能:
创建一个名为“ 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