如何将数据框转换为Apriori算法的数据框。

问题描述 投票:0回答:1

我有一个数据框是这样的 enter image description here

我的目标是找到什么产品在一起卖的最多。因此,我决定使用Apriori算法,所以我试图将一个数据框转换为这样的东西。enter image description here

最好的方法是什么?

如果有更好的方法找到我想找的东西,如果你能给我建议另一种方法,我将感激不尽。

python pandas algorithm apriori
1个回答
0
投票

只要按ID分组,得到一个产品列表,将这些产品的数组输入Apriori。

from apyori import apriori

df = pd.DataFrame({'ID':[1,2,1,2,3,2], 'product':['ball','bat','bat','car','baloon','ball']})

list(apriori(df.groupby('ID')['product'].apply(list).values))

輸出結果

[RelationRecord(items=frozenset({'ball'}), support=0.6666666666666666, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'ball'}), confidence=0.6666666666666666, lift=1.0)]),
 RelationRecord(items=frozenset({'baloon'}), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'baloon'}), confidence=0.3333333333333333, lift=1.0)]),
 RelationRecord(items=frozenset({'bat'}), support=0.6666666666666666, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'bat'}), confidence=0.6666666666666666, lift=1.0)]),
 RelationRecord(items=frozenset({'car'}), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'car'}), confidence=0.3333333333333333, lift=1.0)]),
 RelationRecord(items=frozenset({'bat', 'ball'}), support=0.6666666666666666, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'bat', 'ball'}), confidence=0.6666666666666666, lift=1.0), OrderedStatistic(items_base=frozenset({'ball'}), items_add=frozenset({'bat'}), confidence=1.0, lift=1.5), OrderedStatistic(items_base=frozenset({'bat'}), items_add=frozenset({'ball'}), confidence=1.0, lift=1.5)]),
 RelationRecord(items=frozenset({'ball', 'car'}), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'ball', 'car'}), confidence=0.3333333333333333, lift=1.0), OrderedStatistic(items_base=frozenset({'ball'}), items_add=frozenset({'car'}), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset({'car'}), items_add=frozenset({'ball'}), confidence=1.0, lift=1.5)]),
 RelationRecord(items=frozenset({'bat', 'car'}), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'bat', 'car'}), confidence=0.3333333333333333, lift=1.0), OrderedStatistic(items_base=frozenset({'bat'}), items_add=frozenset({'car'}), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset({'car'}), items_add=frozenset({'bat'}), confidence=1.0, lift=1.5)]),
 RelationRecord(items=frozenset({'bat', 'ball', 'car'}), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({'bat', 'ball', 'car'}), confidence=0.3333333333333333, lift=1.0), OrderedStatistic(items_base=frozenset({'ball'}), items_add=frozenset({'bat', 'car'}), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset({'bat'}), items_add=frozenset({'ball', 'car'}), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset({'car'}), items_add=frozenset({'bat', 'ball'}), confidence=1.0, lift=1.5), OrderedStatistic(items_base=frozenset({'bat', 'ball'}), items_add=frozenset({'car'}), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset({'ball', 'car'}), items_add=frozenset({'bat'}), confidence=1.0, lift=1.5), OrderedStatistic(items_base=frozenset({'bat', 'car'}), items_add=frozenset({'ball'}), confidence=1.0, lift=1.5)])]
© www.soinside.com 2019 - 2024. All rights reserved.