【发布时间】:2020-05-26 05:48:15
【问题描述】:
我尝试为自己创建一个简单的脚本,其中我有一个包含我自己食谱的数据库并生成一周的日菜单。这是一个示例数据库:
recipe_data = {'Recipe': ['Macaroni', 'Mashed_potato', 'Risotto', 'Sandwich', 'Tuna_salad', 'Pancakes', 'Overnight_oats'],
'Recipe_type': ['Dinner', 'Dinner', 'Dinner', 'Lunch', 'Lunch', 'Breakfast', 'Breakfast'],
'Protein': [50, 40, 30, 20, 20, 10, 10],
'Carbohydrates': [100, 80, 60, 50, 40, 30, 20]}
df = pd.DataFrame(recipe_data)
Recipe Recipe_type Protein Carbohydrates
0 Macaroni Dinner 50 100
1 Mashed_potato Dinner 40 80
2 Risotto Dinner 30 60
3 Sandwich Lunch 20 40
4 Tuna_salad Lunch 20 40
5 Pancakes Breakfast 10 20
6 Overnight_oats Breakfast 10 20
我想创建一个函数,我可以说:生成一个随机菜单 [早餐、午餐和晚餐组合],蛋白质组合总和在 65 - 85 之间,碳水化合物组合总和在:135 - 165 之间。在这个例子中会生成一个类似的选项:
Recipe Recipe_type Protein Carbohydrates
0 Macaroni Dinner 50 100
3 Sandwich Lunch 20 40
5 Pancakes Breakfast 10 20
我对 python 很陌生,我看到了一些看起来像我的问题但找不到解决方法的答案。因此,非常欢迎任何帮助。到目前为止,我只得到了这个:
print(df.groupby(['Recipe_type'])['Protein'].apply(np.random.choice).reset_index())
Recipe_type Protein
0 Breakfast 10
1 Dinner 30
2 Lunch 20
(所以显然这并没有打印所有列,也没有考虑任何营养总和..)
很可能我实际上应该使用列表或字典,所以这些建议也可以帮助我很多:)
【问题讨论】:
标签: python pandas list numpy random