首页 > 解决方案 > 根据条件将人员随机分组

问题描述

我有他们部门的人员名单。我试图将他们分配到大小相等的组中,条件是尽可能不要与来自自己部门的人在一起。我有一个包含 19 个部门的 417 人的名单,并试图将他们分成 10 人一组。

这是一个例子来说明我的意思:

名称 部门
 1 | 一个
 2 | 乙
 3 | 乙
 4 | C
 5 | C
 6 | C
 7 | D
 8 | D
 9 | D
10 | 乙

因此,例如,如果以 3 为单位分组,我会得到类似 [1, 4, 7], [3, 6, 9], [2, 10], [5, 8]

是否有任何已知的算法可以解决这个问题。我目前有一个数据框,其列表与上图类似,但不确定如何从那里开始。

标签: pythonvbagrouping

解决方案


由于您已经将它们按部门排序,并带有数字“名称”,因此解决方案很短。

df.groupby(int("Name")%10)

如果我的先决条件错误,请按部门对您的 DF 进行排序,然后按row而不是数字名称进行分配。


推荐阅读