2016-11-18 4 views
1

Ich habe ein Datenframe mit Spalten 'flow1, flow2, flow3' Ich muss die verschiedenen Aufträge extrahieren, die ich von den Spalten erhalten kann.Auszug Kombination von Spaltennamen in einem Datenrahmen

df1 = pd.read_csv("Desktop/lab9/cleaning1/1160/flow.tsv", sep = "\t", header = None, na_values=[" "]) 
df1.columns = ['flow1', 'flow2', 'flow3'] 
for p in permutations(df1.columns, 3): 
    print p 

Dies gibt mir

('flow1', 'flow2', 'flow3') 
('flow1', 'flow3', 'flow2') 
('flow2', 'flow1', 'flow3') 
('flow2', 'flow3', 'flow1') 
('flow3', 'flow1', 'flow2') 
('flow3', 'flow2', 'flow1') 

Aber ich brauche nur:

('flow1', 'flow2', 'flow3') 
('flow1', 'flow3', 'flow2') 
('flow2', 'flow3', 'flow1') 
+0

Gibt es Gründe, warum Sie die anderen nicht brauchen? Die gesamte einzigartige Permutationen bei der Auswahl von 3 Alternativen mit Ersatz ist 3! = 6, wie die Funktion "Permutationen" ergibt. Warum willst du nur diese drei? – Kartik

Antwort

0

Sie sind Mathe Operator zu verkennen.

Verwenden from itertools import combinations statt permutations

+0

Sie können einschließen: - '[t + tuple (set (df1.columns) -set (t)) für t in Kombinationen (df1.columns, 2)], um genau zu sein. –

Verwandte Themen