这是我的 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/

10-15 17:36