python - Pandas 数据框中值的组合

标签 python python-3.x pandas dataframe

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

相关文章:

python - 尝试使用递归方法生成字符串的子集

python - pandas 与 numpy 的不同标准

python - 检查 Pandas 数据框列列表中的值

python - 使用 Python 将 Excel 转换为 JSON,如何根据需要格式化这些数据?

python - 检查文件是否为 'complete'(使用 python)

python - 我的 Sprite 无法向右移动 pygame

python - 无法读取 tensorflow 检查点以进行微调

python - 用另一列中的相同行值替换 pandas 数据框列中的值

python - 在类中装饰 @property.setter 装饰器

python - "TypeError: Start() missing 1 required positional argument: ' self '"