2016-03-27 15 views
3

Dies ist mein Pandas Datenrahmen:Kombination von Werten in Pandas Datenrahmen

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

Wie werde ich alle möglichen einzigartige Kombinationen von 2 und 3 Satz von Elementen aus dem ersten Spalte ‚Item‘ erzeugen.

Beispiel (2 Itemsets): (Brot, Milch) , (Brot, DIAPER), (Brot, Bier), (Milch, DIAPER) usw.

Beispiel (3 Itemsets): (Brot, Milch, WINDEL), (Brot, Milch, Bier), (Milch, WINDEL, Bier) usw.

Antwort

5

können Sie verwenden, um die itertools Bibliothek:

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')] 

Hinweis: die Anzahl der Kombinationen wächst sehr schnell, so dass nicht alle möglichen Kombinationen generiert werden können effizient. Ich empfehle die Implementierung von apriori algorithm, wenn Sie dies noch nicht getan haben.

+0

danken u. es funktioniert – vikky

+0

Infact ich nur die A-priori-Algorithmus bin der Umsetzung, kann u tel mir einen Weg bitte die Kombinationen, die in dem Datensatz zu vergleichen. Beispiel zur Überprüfung der Unterstützungszahl von (BREAD, MILK) im Datensatz wie soll ich fortfahren? – vikky

+0

Ihr Datenrahmen sollte eine Zusammenfassung einer Transaktionstabelle sein. Nachdem Sie nun die Unterstützungsanzahl für diese Elemente berechnet haben, müssen Sie basierend auf Ihrem Unterstützungsschwellenwert die Anzahl der Elementpaare berechnen. Also werden Sie 'itiltools.combinations' auf den Gegenständen nennen, die diese Schwelle überschreiten, und sie zählen. Aber auch dafür brauchen Sie die originale Transaktionstabelle. – ayhan

Verwandte Themen