根据给定的固定值计算允许的最大物品数

时间:2019-09-06 18:15:53

标签: python pandas

我在此数据框中有一组项目:

Items   Calories
Beer      320
Hotdog    200
Popcorn   100
Coca-Cola  75

我需要计算清单中可以达到400卡路里的最少物品数量。有什么建议吗?

我已经计算出了卡路里的总价值,然后就卡在那里了。

row_total = df_calories['Calories'].sum()

1 个答案:

答案 0 :(得分:0)

如果您不能多次选择单个项目。

  1. 按卡路里排序
df = df.sort_values(by=['Calories'], ascending=False).reset_index()

输出

   index    Items  Calories
0      0     Beer       320
1      1   Hotdog       200
2      4    Sweet       160
3      2  Popcorn       100
  1. 取累计总和并选择总和大于400的第一个元素
idx = df[(df['Calories'].cumsum() > 400) == True].index[0]
df[0:idx+1]['Items'].tolist()

输出

['Beer', 'Hotdog']

希望这会有所帮助!