Pandas DataFrame sort_index() Funktion

Suraj Joshi 30 Januar 2023
  1. pandas.DataFrame.sort_index() Methode
  2. Beispiel: Sortieren eines Pandas DataFrame basierend auf dem Index mit der Methode sort_index()
  3. Beispiel: Spalten eines Pandas DataFrame mit der Methode sort_index() sortieren
Pandas DataFrame sort_index() Funktion

Dieses Tutorial erklärt, wie wir einen Pandas DataFrame basierend auf einem Index sortieren können, indem wir die Methode pandas.DataFrame.sort_index() verwenden.

Wir werden den DataFrame aus dem obigen Beispiel verwenden, um zu erklären, wie wir einen Pandas DataFrame auf Basis von Indexwerten sortieren können.

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)

Ausgabe:

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

pandas.DataFrame.sort_index() Methode

Syntax

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

Parameter

axis sortiert entlang der Zeile (axis=0) oder Spalte (axis=1)
level Int oder Liste. Sortieren nach Werten in angegebenen Indexebenen
ascending sortiert in aufsteigender Reihenfolge (ascending=True) oder absteigender Reihenfolge (ascending=False)
inplace Boolescher Wert. Wenn True, wird der DataFrame des Aufrufers in-place verändert
kind Welcher Sortieralgorithmus verwendet werden soll. Standard:quicksort
na_position Setzt NaN-Wert an den Anfang (na_position = 'first') oder das Ende (na_position = 'last')
sort_remaining Boolescher Wert. Wenn True, wird nach der Sortierung nach der angegebenen Ebene bei index=multilevel auch nach anderen Ebenen sortiert (in Reihenfolge)
ignore_index Boolescher Wert. Wenn True, wird die Beschriftung der resultierenden Achse 0,1,…n-1 sein.
key Aufrufbar. Wenn nicht None, wendet diese Funktion key auf die Indexwerte vor der Sortierung an.

Zurück

Wenn inplace True ist, wird der sortierte DataFrame nach Index entlang der angegebenen Achse zurückgegeben; andernfalls None.

Standardmäßig haben wir axis=0, was bedeutet, dass der DataFrame entlang der row-Achse oder nach Indexwerten sortiert wird. Wenn wir axis=1 setzen, werden die Spalten des DataFrame sortiert. Standardmäßig wird die Methode den DataFrame in aufsteigender Reihenfolge sortieren. Um den DataFrame in absteigender Reihenfolge zu sortieren, setzen wir ascending=False.

Beispiel: Sortieren eines Pandas DataFrame basierend auf dem Index mit der Methode 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)

Ausgabe:

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

Der DataFrame pet_df wird in aufsteigender Reihenfolge anhand der Indexwerte sortiert. Um den DataFrame basierend auf den Indexwerten zu sortieren, müssen wir den Parameter index angeben. Standardmäßig ist der Wert von axis 0, wodurch die Zeilen des DataFrame sortiert werden, d. h. der DataFrame wird nach den Indexwerten sortiert.

Um den DataFrame basierend auf den Indexwerten in absteigender Reihenfolge zu sortieren, setzen wir ascending=False in der Methode 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)

Ausgabe:

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

Der DataFrame pets_df wird in absteigender Reihenfolge basierend auf den Indexwerten sortiert.

Beispiel: Spalten eines Pandas DataFrame mit der Methode sort_index() sortieren

Um die Spalten eines Pandas-DataFrames zu sortieren, setzen wir in der Methode sort_index() den Wert axis=1.

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)

Ausgabe:

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

Es werden die Spalten des pets_df DataFrame sortiert. Die Spalten werden in aufsteigender Reihenfolge nach dem Namen der Spalten sortiert.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame