Wie sortiere ich Pandas-Datenrahmen anhand von Werten aus mehreren Spalten?
Ich habe folgenden Datenrahmen:
df = pandas.DataFrame([{'c1':3,'c2':10},{'c1':2, 'c2':30},{'c1':1,'c2':20},{'c1':2,'c2':15},{'c1':2,'c2':100}])
Oder in menschenlesbarer Form:
c1 c2
0 3 10
1 2 30
2 1 20
3 2 15
4 2 100
Der folgende Sortierbefehl funktioniert wie erwartet:
df.sort(['c1','c2'], ascending=False)
Ausgabe:
c1 c2
0 3 10
4 2 100
1 2 30
3 2 15
2 1 20
Aber der folgende Befehl:
df.sort(['c1','c2'], ascending=[False,True])
Ergebnisse in
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
und das erwarte ich nicht. Ich erwarte, dass die Werte in der ersten Spalte vom größten zum kleinsten geordnet sind, und wenn es identische Werte in der ersten Spalte gibt, ordne sie nach den aufsteigenden Werten aus der zweiten Spalte.
Weiß jemand, warum es nicht wie erwartet funktioniert?
HINZUGEFÜGT
Dies ist Kopieren-Einfügen:
>>> df.sort(['c1','c2'], ascending=[False,True])
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10