小编Tod*_*odd的帖子

如何在python中找到一组不同列元素的最低总和?

问题陈述:有 5 个项目和 15 名员工,每列的数字表示每个员工对给定项目的兴趣。每个项目最多可以有 3 名员工。分数是从 1-5 1 是最高偏好,5 是最低偏好。我必须以最少的人不满意或最低分数的方式在项目中分配员工。请注意,我的算法创建了所有可能的组合,然后用 sum 升序对这些组合进行排序,并挑选出具有不同员工的前 5 个组合。

但这就是问题所在,例如,我的 sortedsum 矩阵是 [1,1,1,4,9,9,...] 现在这在算法上是正确的,但问题是如果我选择其中的前 5 个我的总和将是 16。但是如果我将 [2,1,1,4] 作为前四个,那么第五个项目团队的总和可能会代替 [1,1,1,4,9]到 3,这样最小值就会改变,这就是我的算法失败的地方。

我有一个 3nXn 矩阵,在本例中,我将其视为 15x5:所以矩阵看起来像这样(https://i.stack.imgur.com/omcq7.png):

df = pd.read_csv(io.StringIO("""

employee  proj_A  proj_B  proj_C  proj_D  proj_E
      A1       1       5       3       4       2
      B1       5       4       1       2       3
      C1       2       3       4       1       5
      A2       4       2       1       3       5
      B2       4       5       3       2       1
      C2       3       1       2       5       4
      A3       1 …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

6
推荐指数
1
解决办法
446
查看次数

标签 统计

pandas ×1

python ×1

python-3.x ×1