2017-07-11 5 views

Antwort

1

Finden Sie heraus, Zeilen, die C == XYZ:

idx = df.C == 'XYZ' 

Dann loc verwenden, um die Werte in Spalte A und B, tauschen die Werte zu finden und ordnen sie zurück; Beachten Sie die values das Ergebnis von einem Datenrahmen zu einem numpy Array zu konvertieren, so dass die Zuordnung nicht versuchen, den Spaltenindex auszurichten (was in keinem Effekt führen):

df.loc[idx, ['A', 'B']] = df.loc[idx, ['B', 'A']].values 

df 
#  A B C 
#0 315 105 ABC 
#1 315 135 ABC 
#2 105 44 ABC 
#3 105 70 ABC 
#4 105 72 ABC 
#5 315 105 XYZ 
#6 319 105 XYZ 
+0

perfekte Lösung !! Danke –

+0

Eine weitere Hilfe bitte @Psidom, jetzt habe ich Duplikate in Daten. Wir identifizieren Duplikate als eine Kombination von Spalten A und B kombiniert. Im obigen Beispiel sind die einzigen Duplikate die Zeilen # 0 und # 5. Wie eliminieren wir Duplikate aus dem obigen Ergebnis? –

+0

'df.drop_duplicates (['A', 'B'])' wenn du eines der duplizierten behalten willst; 'df.drop_duplicates (['A', 'B'], keep = False)' wenn Sie beide entfernen möchten. – Psidom

Verwandte Themen