我有两个数据框。第一个代表某些成分的营养信息,其中行作为成分,列作为营养类别。
Item Brand and style Quantity Calories Total Fat ... Carbs Sugar Protein Fiber Sodium
0 Brown rice xxx xxxxxxxx xxxxx, long grain 150g 570 4.5 ... 1170 0 12 6 0
1 Whole wheat bread xxxxxxxx, whole grains 2 slices 220 4 ... 42 6 8 6 320
2 Whole wheat cereal xxx xxxxxxxx xxxxx, wheat squares 60g 220 1 ... 47 0 7 5 5
第二个代表膳食的成分类型和数量,以膳食为行,成分为列。
Meal Brown rice Whole wheat bread Whole wheat cereal ... Marinara sauce American cheese Olive oil Salt
0 Standard breakfast 0 0 1 ... 0 0 0 0
1 Standard lunch 0 2 0 ... 0 0 0 0
2 Standard dinner 0 0 0 ... 0 0 1 1
我正在尝试创建另一个数据框,以使餐点排成一行,营养类别位于顶部,以成分的数量表示餐点的全部营养价值。
例如,如果标准午餐包括两片面包(每片150卡),一份花生酱(100卡)和一份果冻(50卡),那么我希望数据框像这样:
Meal Calories Total fat ...
Standard lunch 450 xxx
Standard dinner xxx xxx
...
450来自(2 * 150 + 100 + 50)。
功能模板可以是:
def create_meal_category_dataframe(ingredients_df, meals_df):
ingredients = meals_df.columns[1:]
meals = meals_df['Meal']
# return meal_cat_df
我提取了餐食和成分名称的列表,但不确定在这里是否有用。谢谢。