如何利用集合运算为每个队列选择无重叠的唯一对照样本?
队列对照样本无重叠选取问题
初始数据
Cohort Controls #a #1 #a #2 #a #3 #a #4 #b #1 #b #2 #c #5 #c #6 #c #1 #c #2
期望结果
需要为每个队列选出2个唯一且不与其他队列重叠的对照样本,最终输出如下:
#a #3 #a #4 #b #1 #b #2 #c #5 #c #6
核心难点
直接使用.groupby('Cohort').head(2)会陷入死局:比如选中#a的#1、#2后,#b就没有可用的对照样本了(因为#b的可选样本只有#1、#2)。
当前解决方案的问题
目前采用随机排序后逐个队列循环选2个样本并移除已选样本的暴力方法,但该方法速度慢、效率低且结果不可靠。
提问
如何利用集合运算实现「从每个队列的对照样本集合中选取2个元素,确保各队列选中的元素唯一且无重叠」?
内容的提问来源于stack exchange,提问作者pinegulf
相关产品推荐
相关产品推荐

