微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查“ Array”类型的python pandas数据框列中的AND和OR条件?

如何解决如何检查“ 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条件。谁能帮我这个忙。

解决方法

因为在这里使用标量,必须使用orand,而不是|&

 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 举报,一经查实,本站将立刻删除。