2016-03-27 260 views
3

值。這是我的熊貓數據框:組合大熊貓數據幀

 Item   Support_Count 
0  BREAD    4 
1  MILK    4 
2  DIAPER    4 
3  BEER    3 

我將如何產生的2和所有可能的唯一組合3組從第1列「項目」的項目。

實施例(2個集): (麪包,牛奶) ,(麪包,尿布),(麪包,啤酒),(牛奶,尿布)等

實施例(3個集): (麪包,牛奶,尿布),(麪包,牛奶,啤酒),(牛奶,尿布,啤酒)等

回答

5

可以使用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實現。

+0

謝謝你。它的工作原理 – vikky

+0

Infact我只實現了apriori算法,可以請給我一種方法來比較數據集中生成的組合。檢查數據集中(BREAD,MILK)的支持計數的示例應如何繼續。 – vikky

+0

您的數據框應該是交易表的摘要。現在您計算了這些項目的支持計數,根據您的支持閾值,您需要計算項目對的計數。因此,您會在超過該閾值的項目上調用「itertools.combinations」並對它們進行計數。但同樣,你需要原始的交易表。 – ayhan