Jak sortować ramkę danych pand za pomocą wartości z kilku kolumn?
Mam następującą ramkę danych:
df = pandas.DataFrame([{'c1':3,'c2':10},{'c1':2, 'c2':30},{'c1':1,'c2':20},{'c1':2,'c2':15},{'c1':2,'c2':100}])
Lub w formie czytelnej dla człowieka:
c1 c2
0 3 10
1 2 30
2 1 20
3 2 15
4 2 100
Następujące polecenie sortowania działa zgodnie z oczekiwaniami:
df.sort(['c1','c2'], ascending=False)
Wydajność:
c1 c2
0 3 10
4 2 100
1 2 30
3 2 15
2 1 20
Ale następujące polecenie:
df.sort(['c1','c2'], ascending=[False,True])
prowadzi do
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
a tego nie oczekuję. Oczekuję, że wartości w pierwszej kolumnie będą uporządkowane od największej do najmniejszej, a jeśli w pierwszej kolumnie są identyczne wartości, uporządkuj według rosnących wartości z drugiej kolumny.
Czy ktoś wie, dlaczego nie działa zgodnie z oczekiwaniami?
DODANY
To jest kopia-wklej:
>>> df.sort(['c1','c2'], ascending=[False,True])
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10