Ich habe folgenden Datenrahmen:Wie Pandas Datenrahmen mit Werten aus mehreren Spalten zu sortieren?
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 für Menschen lesbare Form:
c1 c2
0 3 10
1 2 30
2 1 20
3 2 15
4 2 100
Folgende Sortier-Befehl arbeitet wie erwartet:
df.sort(['c1','c2'], ascending=False)
Output:
c1 c2
0 3 10
4 2 100
1 2 30
3 2 15
2 1 20
Aber der folgenden Befehl ein:
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 ist nicht das, was ich erwarte. Ich erwarte, dass die Werte in der ersten Spalte vom größten zum kleinsten sortiert sind, und wenn in der ersten Spalte identische Werte vorhanden sind, sortiere nach den aufsteigenden Werten aus der zweiten Spalte.
Weiß jemand, warum es nicht wie erwartet funktioniert?
ADDED
Dies ist copy-paste:
>>> df.sort(['c1','c2'], ascending=[False,True])
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
Welche Version von Pandas und numpy verwenden Sie? –