Я пытаюсь создать для себя простой скрипт, в котором у меня есть база данных с моими собственными рецептами, и я создаю дневные меню на неделю. Это пример базы данных:
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
(поэтому очевидно, что это не распечатывает все столбцы и не учитывает какую-либо сумму питательных веществ ..)
это может быть очень хорошо будь то, что я на самом деле должен работать со списками или словарями, так что эти siuggestions могут мне очень помочь:)