python - 根据条件将人员随机分组
问题描述
我有他们部门的人员名单。我试图将他们分配到大小相等的组中,条件是尽可能不要与来自自己部门的人在一起。我有一个包含 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]
是否有任何已知的算法可以解决这个问题。我目前有一个数据框,其列表与上图类似,但不确定如何从那里开始。
解决方案
由于您已经将它们按部门排序,并带有数字“名称”,因此解决方案很短。
df.groupby(int("Name")%10)
如果我的先决条件错误,请按部门对您的 DF 进行排序,然后按row
而不是数字名称进行分配。
推荐阅读
- c++ - 使用根到节点路径方法超过最低共同祖先时间限制
- algorithm - 大小为 2^n 的整数的线性时间排序
- javascript - 进入新服务器后,是否可以让您的机器人更改自己的昵称?
- google-cloud-platform - 实体组会成为 Firestore 数据存储模式中的“默认”选择吗?
- docker - 如何绑定具有正确权限的 sshfs 卷?
- flutter - 定位容器内的颤动Listview没有滚动
- php - 如何在 php echo 中添加类和超链接?
- java - Gradle 与 Ant Java Task 的等价物是什么?
- django-models - 将当前登录的用户分配给 Django 中的 ForeignKey 字段
- python - 脚本 a 需要来自脚本 b 的数据,但脚本 b 也需要来自脚本 a 的数据。可以双向导入吗?