Usa sort_values() per riordinare le righe in base ai valori di colonna. Applica sort_index() per riordinare le righe in base all’indice del DataFrame. Combina entrambi i metodi per esplorare i dati da diverse angolazioni.
Trovare informazioni interessanti in un DataFrame è spesso più semplice se cambi l’ordine delle righe. Puoi ordinare le righe passando il nome di una colonna a .sort_values().
Nei casi in cui le righe abbiano lo stesso valore (cosa comune se ordini per una variabile categorica), potresti voler risolvere i pareggi ordinando su un’altra colonna. Puoi ordinare su più colonne passando un elenco di nomi di colonna.
Ordinare le righe per valori di colonna con sort_values()
Puoi cambiare l’ordine delle righe ordinandole in modo che i dati più interessanti siano in cima al DataFrame.
Ordina per una singola colonna
Ad esempio, quando applichiamo sort_values() alla colonna weight_kg del DataFrame dogs, otteniamo il cane più leggero in cima, Stella il Chihuahua, e il più pesante in fondo, Bernie il San Bernardo.
name breed color height_cm weight_kg date_of_birth
5 Stella Chihuahua Tan 1822015-04-203 Cooper Schnauzer Gray 49172011-12-110 Bella Labrador Brown 56242013-07-011 Charlie Poodle Black 43242016-09-162 Lucy Chow Chow Brown 46242014-08-254 Max Labrador Black 59292017-01-206 Bernie St. Bernard White 77742018-02-27Offerto da
Impostando l’argomento ascending a False ordinerai i dati nell’altro verso, dal cane più pesante al più leggero.
dogs.sort_values("weight_kg", ascending=False)Offerto da
name breed color height_cm weight_kg date_of_birth
6 Bernie St. Bernard White 77742018-02-274 Max Labrador Black 59292017-01-200 Bella Labrador Brown 56242013-07-011 Charlie Poodle Black 43242016-09-162 Lucy Chow Chow Brown 46242014-08-253 Cooper Schnauzer Gray 49172011-12-115 Stella Chihuahua Tan 1822015-04-20Offerto da
Ordina per più colonne
Possiamo ordinare per più variabili passando un elenco di nomi di colonna a sort_values. Qui ordiniamo prima per peso, poi per altezza. Ora Charlie, Lucy e Bella sono ordinati dal più basso al più alto, anche se pesano tutti uguale.
dogs.sort_values(["weight_kg","height_cm"])Offerto da
name breed color height_cm weight_kg date_of_birth
5 Stella Chihuahua Tan 1822015-04-203 Cooper Schnauzer Gray 49172011-12-111 Charlie Poodle Black 43242016-09-162 Lucy Chow Chow Brown 46242014-08-250 Bella Labrador Brown 56242013-07-014 Max Labrador Black 59292017-01-206 Bernie St. Bernard White 77742018-02-27Offerto da
Per cambiare il verso dell’ordinamento dei valori, passa una lista all’argomento ascending per specificare in che direzione ordinare ciascuna variabile. Ora Charlie, Lucy e Bella sono ordinati dal più alto al più basso.
dogs.sort_values(["weight_kg","height_cm"], ascending=[True,False])Offerto da
name breed color height_cm weight_kg date_of_birth
5 Stella Chihuahua Tan 1822015-04-203 Cooper Schnauzer Gray 49172011-12-110 Bella Labrador Brown 56242013-07-012 Lucy Chow Chow Brown 46242014-08-251 Charlie Poodle Black 43242016-09-164 Max Labrador Black 59292017-01-206 Bernie St. Bernard White 77742018-02-27Offerto da
Ordinare per indice di riga con sort_index()
A volte potresti voler riordinare le righe in base alle loro etichette (cioè all’indice del DataFrame) invece che a specifiche colonne. In tal caso, puoi usare il metodo sort_index() al posto di sort_values(). Ricorda che, per impostazione predefinita, sort_index() ordina le righe in ordine crescente in base al loro indice:
# Ordina le righe per indice (crescente)
dogs_sorted = dogs.sort_index()print(dogs_sorted)Offerto da
Se hai bisogno di ordinare le righe in ordine decrescente, passa semplicemente ascending=False:
# Ordina le righe per indice (decrescente)
dogs_sorted_desc = dogs.sort_index(ascending=False)print(dogs_sorted_desc)Offerto da
Allo stesso modo, se hai un indice multilivello (gerarchico), sort_index() può gestirlo ordinando più livelli. Ti basta passare un elenco ai parametri level o ascending (proprio come prima abbiamo passato un elenco a sort_values()):
# Ordina le righe per più livelli di un indice multilivello
dogs_sorted_multi = dogs.sort_index(level=[0,1], ascending=[True,False])print(dogs_sorted_multi)Offerto da
Esempio interattivo di Pandas Sort Values
Nel seguente esempio, ordinerai homelessness per numero di individui senza dimora, dal più piccolo al più grande, e salverai il risultato come homelessness_ind. Infine, stamperai la testa del DataFrame ordinato.
# Ordina homelessness per individuals
homelessness_ind = homelessness.sort_values("individuals")# Stampa le prime righeprint(homelessness_ind.head())Offerto da
Eseguendo il codice qui sopra, si ottiene il seguente risultato:
region state individuals family_members state_pop
50 Mountain Wyoming 434.0205.057760134 West North Central North Dakota 467.075.07580807 South Atlantic Delaware 708.0374.096547939 New England Rhode Island 747.0354.0105828745 New England Vermont 780.0511.0624358Offerto da
In questo articolo abbiamo visto, tra le altre cose, quando usare sort_index() vs. sort_values(): usa sort_values() quando vuoi riordinare le righe in base ai valori delle colonne; usa sort_index() quando vuoi riordinare le righe in base alle etichette di riga (l’indice del DataFrame).
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Trovare informazioni interessanti in un DataFrame è spesso più semplice se cambi l’ordine delle righe. Puoi ordinare le righe passando il nome di una colonna a
.sort_values().Nei casi in cui le righe abbiano lo stesso valore (cosa comune se ordini per una variabile categorica), potresti voler risolvere i pareggi ordinando su un’altra colonna. Puoi ordinare su più colonne passando un elenco di nomi di colonna.
Ordinare le righe per valori di colonna con sort_values()
Puoi cambiare l’ordine delle righe ordinandole in modo che i dati più interessanti siano in cima al DataFrame.
Ordina per una singola colonna
Ad esempio, quando applichiamo
sort_values()alla colonnaweight_kgdel DataFrame dogs, otteniamo il cane più leggero in cima, Stella il Chihuahua, e il più pesante in fondo, Bernie il San Bernardo.Impostando l’argomento
ascendinga False ordinerai i dati nell’altro verso, dal cane più pesante al più leggero.Ordina per più colonne
Possiamo ordinare per più variabili passando un elenco di nomi di colonna a
sort_values. Qui ordiniamo prima per peso, poi per altezza. Ora Charlie, Lucy e Bella sono ordinati dal più basso al più alto, anche se pesano tutti uguale.Per cambiare il verso dell’ordinamento dei valori, passa una lista all’argomento ascending per specificare in che direzione ordinare ciascuna variabile. Ora Charlie, Lucy e Bella sono ordinati dal più alto al più basso.
Ordinare per indice di riga con sort_index()
A volte potresti voler riordinare le righe in base alle loro etichette (cioè all’indice del DataFrame) invece che a specifiche colonne. In tal caso, puoi usare il metodo
sort_index()al posto disort_values(). Ricorda che, per impostazione predefinita,sort_index()ordina le righe in ordine crescente in base al loro indice:Se hai bisogno di ordinare le righe in ordine decrescente, passa semplicemente
ascending=False:Allo stesso modo, se hai un indice multilivello (gerarchico),
sort_index()può gestirlo ordinando più livelli. Ti basta passare un elenco ai parametrileveloascending(proprio come prima abbiamo passato un elenco asort_values()):Esempio interattivo di Pandas Sort Values
Nel seguente esempio, ordinerai
homelessnessper numero di individui senza dimora, dal più piccolo al più grande, e salverai il risultato comehomelessness_ind. Infine, stamperai la testa del DataFrame ordinato.Eseguendo il codice qui sopra, si ottiene il seguente risultato:
Provalo tu stesso.
Per saperne di più sull’ordinamento e il subset dei dati, guarda questo video dal nostro corso Data Manipulation with pandas.
Questo contenuto è tratto dal corso Data Manipulation with pandas di Maggie Matsui e Richie Cotton su DataCamp.
Approfondimenti
In questo articolo abbiamo visto, tra le altre cose, quando usare
sort_index()vs.sort_values(): usasort_values()quando vuoi riordinare le righe in base ai valori delle colonne; usasort_index()quando vuoi riordinare le righe in base alle etichette di riga (l’indice del DataFrame).Abbiamo molti altri utili tutorial su pandas per continuare a imparare, incluso The Ultimate Guide to Pandas for Beginners, così puoi fare pratica. Abbiamo anche altre guide pratiche specifiche per problemi comuni, tra cui How to Import CSV Data into Pandas e How to Join DataFrames in Pandas. Inoltre, ricorda di seguire il nostro percorso di competenze Python Programming per continuare a migliorare.