Python 如何在具有两个条件的数据帧中找到最佳组合

Python 如何在具有两个条件的数据帧中找到最佳组合,python,pandas,dataframe,combinations,Python,Pandas,Dataframe,Combinations,试着找出今年你能为一场梦幻比赛组建的最好的自行车队。有两个条件: 团队总价格应低于120米 我的队里肯定有20名车手 以下是我的数据帧示例(2021年结果): 我曾尝试过这样的事情,但如果我的预算超过1.2亿,我想不出如何改变最后添加的骑手: Best_team = [] Team_points = 0 Team_price = 0 numberOfRiders = 0 for i, row in df.iterrows(): while numberOfRiders != 20:

试着找出今年你能为一场梦幻比赛组建的最好的自行车队。有两个条件:

  • 团队总价格应低于120米
  • 我的队里肯定有20名车手
  • 以下是我的数据帧示例(2021年结果):

    我曾尝试过这样的事情,但如果我的预算超过1.2亿,我想不出如何改变最后添加的骑手:

    Best_team = []
    Team_points = 0
    Team_price = 0
    numberOfRiders = 0
    
    for i, row in df.iterrows():
        while numberOfRiders != 20:
            while Team_price <= 120:
                if row.Name in Best_team:
                    continue
                else:
                    Best_team.append(row.Name)
                    Team_price += row.Price
                    Team_points += row['Total Points 2021']
                    numberOfRiders += 1
            else:
                break
    
    最佳团队=[]
    团队积分=0
    团队价格=0
    乘客人数=0
    对于i,df.iterrows()中的行:
    而车手的数量!=20:
    
    当团队定价时,我的第一个想法是让线性优化引擎为您完成工作。比如scipy.optimize。价格约束下的最大化点
    Best_team = []
    Team_points = 0
    Team_price = 0
    numberOfRiders = 0
    
    for i, row in df.iterrows():
        while numberOfRiders != 20:
            while Team_price <= 120:
                if row.Name in Best_team:
                    continue
                else:
                    Best_team.append(row.Name)
                    Team_price += row.Price
                    Team_points += row['Total Points 2021']
                    numberOfRiders += 1
            else:
                break