python - 部分交集 - 多个组
问题描述
我不确定如何解决我的问题,因此我无法查看它是否已经存在(提前道歉)
Group Item
A 1
A 2
A 3
B 1
B 3
C 1
D 2
D 3
我想知道共享超过 X 个项目(本例中为 2 个)的所有组组合。我想知道他们共享哪些项目。
结果:
A-B: 2 (item 1 and item 3)
A-D: 2 (item 2 and item 3)
组和项目的列表真的很长,跨组的最大项目匹配数可能不超过 3-5。
NB超过 2 个组可以有共享项目 - 例如 ABE: 3 所以一次只比较两个组是不够的。我需要比较所有组的组合。
我的想法
- 第一轮:所有组中的一堆 - 至少有两个值在所有人之间共享?
- 第二轮:All-1组(所有组合)
- 第三轮:全2组(所有组合)
直到我达到只有两组(所有组合)之间的比较。然而,这似乎超级沉重的性能明智!我不知道该怎么做。
你觉得呢?你有没有什么想法?
谢谢!
解决方案
这就是我处理问题的方法,它可能不是处理它的最有效方法,但它有明确的优点。
- 列出每个组,该组拥有的所有项目。
- 然后对于每对组,列出所有共享项(例如,对于组 A 的所有项,检查它是否是组 B 的一项)。
- 检查共享项目的数量是否高于您的阈值
X
。
这不是一个现成的功能,但它应该很容易(或至少是一个很好的练习)实现。
玩得开心 !
推荐阅读
- apache-poi - POI 错误自定义属性当我将属性设置为 MSIP_Label_a7f2ec83-e677-438d-afb7-4c7c0dbc872b_Name: Secret
- maven - 基于配置文件的条件模块
- python - 如何从预测图像中过滤和去除图像中的噪声
- css - Webpack 5 无法编译 boostrap
- python - 检查序列中的元素是否大于前两个元素
- python - pandas:如果值为 NaT,则在数据框中添加行
- math - 逼近未知函数的逆
- jira - 在 Jira 中配置列 - 列管理
- javascript - .catch 控制台错误的生产和开发最佳实践是什么?
- python - 地址更改影响脚本?使用服务器发送电子邮件