跨数据框映射值以创建一个新的

时间:2019-11-17 07:09:26

标签: python pandas

我有两个数据框。第一个代表某些成分的营养信息,其中行作为成分,列作为营养类别。

                                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

我提取了餐食和成分名称的列表,但不确定在这里是否有用。谢谢。

0 个答案:

没有答案