我有两个数据帧。每个角色都有一个,他们在饮食中必须选择的食物类别(样本:)
role_type food_categories
Sportsman Meat, Seafood, Fruits
Kids Meat, Dairy, Vegetables
Elderly Fruits, Vegetables
Teenagers Seafood, Junkfood, Meat
Athletes Meat, Dairy, Seafood, Fruits
Trainer Meat, Dairy
Others Meat, Junkfood
另一个是关于需要吃什么才能将该类别分类为完整类别的信息(也是一个样本,实际数据包含大量类别):
food_name food_category category_type
Lettuce Vegetables all
Celery Vegetables all
Shrimp Seafood any
Salmon Seafood any
Tuna Seafood any
Yougourt Dairy all
Cheese Dairy all
Veal Meat any
Mutton Meat any
Orange Fruits all
Pear Fruits all
Apple Fruits all
Cheese_Burger Junkfood any
Fries Junkfood any
Pizza Junkfood any
因此,例如,如果一个人要担任trainer
角色,他们必须完成Dairy
和Meat
类别。因此,他必须按照以下标准进食:他必须进食Meat
类别的任何食物,即'Veal'
或'Mutton'
或两者兼而有之。然后他必须吃Dairy
类的所有食物,即'Milk'
和'Youghurt'
和'Cheese'
。完成后,可以将其传递给角色。对于一个非常特定的角色和类别,我可以进行如下主要检查,例如我刚才解释的场景:
passed = any([choice in choices_uptil_now for choice in ['Veal', 'Mutton']]) and all([choice in choices_uptil_now for choice in ['Milk', 'Youghurt', 'Cheese']])
基于此检查,我可以通过迭代查找值,并查看所需的内容,但如何以更具可伸缩性的方式进行处理?就像有很多种类,很多食物和很多角色,人们都在为之奋斗。我尝试将值作为python函数any()
和all()
进行数据透视和存储,以应用于pandas数据帧,但感觉这不是最具伸缩性的方法。任何改善这种情况的帮助都会非常有帮助
目前没有回答
相关问题 更多 >
编程相关推荐