首页 > 解决方案 > 熊猫 - 组合

问题描述

我有一个数据框

supper_meal_list = pd.DataFrame({'Meal': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ,16, 17, 18, 19, 20],
                                  'Meal_Type': ['Good','Cheat', 'Cheat', 'Good', 'Medium', 'Cheat', 'Good', 'Good', 'Good', 'Good', 'Good', 'Good', 'Cheat', 'Medium', 'Medium', 'Good', 
                                  'Good', 'Good', 'Good', 'Cheat'],
                                  'Meal_speed': [15, 23, 50, 12, 7, 25, 27, 32, 12, 67, 43, 32, 56, 14, 19, 24, 27, 17, 92, 26]}) 

我想找到“Meal_speed”最快或最少的前 10 种膳食类型组合 (supper_meal_list['Meal_speed'])。

我可以使用 itertools.combinations 包获取每周 5 天的组合列表。

comb = combinations(supper_meal_list['Meal'], 5) 

for i in list(comb):
    print (i)

但是,找到相关行以求和 meal_speed 并使用 rank() 的最佳方法是什么?

下面是我对前 3 个组合的预期输出示例

df = pd.DataFrame({'Combo': [[1 ,2 , 3, 4, 5], [1, 2, 3, 4, 6], [1, 2, 3, 4, 7],
                   'Week_Meal_speed': [107, 125, 127]})

标签: pandascombinations

解决方案


推荐阅读