pandas数据框中值的组合

vik*_*kky 6 python dataframe python-3.x pandas

这是我的熊猫数据帧:

       Item          Support_Count
0      BREAD              4
1      MILK               4
2      DIAPER             4
3      BEER               3
Run Code Online (Sandbox Code Playgroud)

如何从第1列"项目"中生成2和3组项目的所有可能的唯一组合.

示例(2项目集):(面包,牛奶),(面包,尿布),(面包,啤酒),(牛奶,尿布)等.

实施例(3个集):(面包,牛奶,尿布),(面包,牛奶,啤酒),(牛奶,尿布,啤酒)等

ayh*_*han 11

你可以使用这个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')]
Run Code Online (Sandbox Code Playgroud)

注意:组合的数量增长非常快,因此生成所有可能的组合可能效率不高.如果您还没有这样做,我建议您查看apriori算法实现.