Ho la seguente struttura dei dati:Come ordinare il frame dei dati dei panda usando i valori di più colonne?
df = pandas.DataFrame([{'c1':3,'c2':10},{'c1':2, 'c2':30},{'c1':1,'c2':20},{'c1':2,'c2':15},{'c1':2,'c2':100}])
o, in forma leggibile:
c1 c2
0 3 10
1 2 30
2 1 20
3 2 15
4 2 100
I seguenti cernita comando funziona come previsto:
df.sort(['c1','c2'], ascending=False)
uscita:
c1 c2
0 3 10
4 2 100
1 2 30
3 2 15
2 1 20
Ma il seguente comando:
df.sort(['c1','c2'], ascending=[False,True])
risultati in
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
e questo non è quello che mi aspetto. Mi aspetto di avere i valori nella prima colonna ordinati dal più grande al più piccolo, e se ci sono valori identici nella prima colonna, ordine dai valori ascendenti dalla seconda colonna.
Qualcuno sa perché non funziona come previsto?
AGGIUNTO
Si tratta di copia-incolla:
>>> df.sort(['c1','c2'], ascending=[False,True])
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
Quale versione di panda e numpy stai usando? –