这是我的 Pandas 数据框:
Item Support_Count
0 BREAD 4
1 MILK 4
2 DIAPER 4
3 BEER 3
我将如何从第 1 列“项目”中生成 2 组和 3 组项目的所有可能的唯一组合。
示例(2 项集): (面包,牛奶) ,(面包,尿布),(面包,啤酒),(牛奶,尿布)等
示例(3 个项目集): (BREAD,MILK,DIAPER),(BREAD,MILK,BEER),(MILK,DIAPER,BEER)等
最佳答案
您可以使用 itertools
库:
import itertools
list(itertools.combinations(df['Item'], 2))
[('BREAD', 'MILK'),
('BREAD', 'DIAPER'),
('BREAD', 'BEER'),
('MILK', 'DIAPER'),
('MILK', 'BEER'),
('DIAPER', 'BEER')]
list(itertools.combinations(df['Item'], 3))
[('BREAD', 'MILK', 'DIAPER'),
('BREAD', 'MILK', 'BEER'),
('BREAD', 'DIAPER', 'BEER'),
('MILK', 'DIAPER', 'BEER')]
注意:组合的数量增长非常快,因此生成所有可能的组合可能效率不高。我建议查看 apriori algorithm实现(如果您还没有这样做的话)。
关于python - Pandas 数据框中值的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36242735/