Funzione Pandas DataFrame sort_index()

Suraj Joshi 30 gennaio 2023
  1. Metodo pandas.DataFrame.sort_index()
  2. Esempio: ordina un DataFrame Pandas in base all’indice utilizzando il metodo sort_index()
  3. Esempio: ordina le colonne di un DataFrame Pandas usando il metodo sort_index()
Funzione Pandas DataFrame sort_index()

Questo tutorial spiega come possiamo ordinare un Pandas DataFrame in base a un indice usando il metodo pandas.DataFrame.sort_index().

Useremo il DataFrame mostrato nell’esempio sopra per spiegare come possiamo ordinare un Pandas DataFrame in base ai valori di indice.

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

print(pets_df)

Produzione:

      Pet    Name  Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1  Rabbit    Coco           5
3    Fish  Finley           4

Metodo pandas.DataFrame.sort_index()

Sintassi

DataFrame.sort_index(axis=0,
                     level=None,
                     ascending=True,
                     inplace=False,
                     kind='quicksort',
                     na_position='last',
                     sort_remaining=True,
                     ignore_index=False
                     key=None)

Parametri

axis ordina lungo la riga (axis=0) o colonna (axis=1)
level Int o List. Ordina in base ai valori nei livelli di indice specificati
ascending ordina in ordine ascendente (ascending=True) o discendente (ascending=False)
inplace Booleano. Se True, modifica il DataFrame del chiamante sul posto
kind quale algoritmo di ordinamento utilizzare. impostazione predefinita: quicksort
na_position Metti il ​​valore NaN all’inizio (na_position = 'first') o alla fine (na_position = 'last')
sort_remaining Booleano. Se True, ordina anche per altri livelli (in ordine) dopo l’ordinamento in base al livello specificato per index=multilevel
ignore_index Booleano. Se True, l’etichetta dell’asse risultante sarà 0,1, … n-1.
key Richiamabile. Se non è Nessuno, applica questa funzione key ai valori dell’indice prima dell’ordinamento.

Ritorno

Se inplace è True, restituisce il DataFrame ordinato per indice lungo l’asse specificato; altrimenti, None.

Per impostazione predefinita, abbiamo axis=0, che rappresenta il DataFrame sarà ordinato lungo l’asse riga o ordinato per valori di indice. Se impostiamo axis=1, ordinerà le colonne del DataFrame. Per impostazione predefinita, il metodo ordinerà il DataFrame in ordine crescente. Per ordinare il DataFrame in ordine decrescente, impostiamo ascending=False.

Esempio: ordina un DataFrame Pandas in base all’indice utilizzando il metodo sort_index()

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

sorted_df = pets_df.sort_index()

print("Initial DataFrame:")
print(pets_df, "\n")

print("DataFrame Sorted by Index Values:")
print(sorted_df)

Produzione:

Initial DataFrame:
      Pet    Name Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1 Rabbit    Coco           5
3    Fish Finley           4

DataFrame Sorted by Index Values:
      Pet    Name Age(Years)
1 Rabbit    Coco           5
2     Cat    Luna           5
3    Fish Finley           4
4     Dog   Rocky           3

Ordina il DataFrame pet_df in ordine crescente in base ai valori dell’indice. Per ordinare il DataFrame in base ai valori di indice, dobbiamo specificare il parametro index. Per impostazione predefinita, il valore di axis è 0, che ordina le righe del DataFrame, ovvero ordina DataFrame in base ai valori dell’indice.

Per ordinare il DataFrame in base ai valori dell’indice in ordine decrescente, impostiamo ascending=False nel metodo sort_index().

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

sorted_df = pets_df.sort_index(ascending=False)

print("Initial DataFrame:")
print(pets_df, "\n")

print("DataFrame Sorted in Descending order based Index Values:")
print(sorted_df)

Produzione:

Initial DataFrame:
      Pet    Name Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1 Rabbit    Coco           5
3    Fish Finley           4

DataFrame Sorted in Descending order based Index Values:
      Pet    Name Age(Years)
4     Dog   Rocky           3
3    Fish Finley           4
2     Cat    Luna           5
1 Rabbit    Coco           5

Ordina il DataFrame pets_df in ordine decrescente in base ai valori dell’indice.

Esempio: ordina le colonne di un DataFrame Pandas usando il metodo sort_index()

Per ordinare le colonne di un Pandas DataFrame, impostiamo axis=1 nel metodo sort_index().

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

sorted_df = pets_df.sort_index(axis=1)

print("Initial DataFrame:")
print(pets_df, "\n")

print("DataFrame with sorted Columns:")
print(sorted_df)

Produzione:

Initial DataFrame:
      Pet    Name  Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1  Rabbit    Coco           5
3    Fish  Finley           4

DataFrame with sorted Columns:
   Age(Years)    Name     Pet
4           3   Rocky     Dog
2           5    Luna     Cat
1           5    Coco  Rabbit
3           4  Finley    Fish

Ordina le colonne del DataFrame pets_df. Le colonne vengono ordinate in ordine crescente in base al nome delle colonne.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Pandas DataFrame