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

Antworten auf die Frage(7)

Ihre Antwort auf die Frage