这是我的 Pandas 数据框:
Item Support_Count
0 BREAD 4
1 MILK 4
2 DIAPER 4
3 BEER 3
我将如何从第一列“项目”中生成2和3组项目的所有可能的唯一组合。
示例(2套):
(面包,牛奶)
,(面包,尿布),(面包,啤酒),(牛奶,尿布等)
示例(3件套):
(面包,牛奶,尿布),(面包,牛奶,啤酒),(牛奶,尿布,啤酒)等
最佳答案
您可以使用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/