Weiter zum Inhalt

Pandas Werte sortieren: Ein komplettes How-To

Verwende sort_values(), um Zeilen nach Spaltenwerten zu sortieren. Wende sort_index() an, um die Zeilen nach dem Index des DataFrame zu sortieren. Kombiniere beide Methoden, um deine Daten aus verschiedenen Blickwinkeln zu untersuchen.
Aktualisiert 16. Jan. 2025  · 4 Min. lesen

Es ist oft einfacher, interessante Daten in einem DataFrame zu finden, wenn du die Reihenfolge der Zeilen änderst. Du kannst die Zeilen sortieren, indem du einen Spaltennamen an .sort_values() übergibst.

In Fällen, in denen Zeilen denselben Wert haben (das ist häufig der Fall, wenn du nach einer kategorialen Variable sortierst), kannst du die Gleichheit durch Sortieren nach einer anderen Spalte aufheben. Du kannst auf diese Weise nach mehreren Spalten sortieren, indem du eine Liste von Spaltennamen übergibst.

Beispiel für die Sortierung von Pandas-Spalten

Pandas zum Sortieren von Spalten verwenden

Du kannst die Reihenfolge der Zeilen ändern, indem du sie so sortierst, dass die interessantesten Daten ganz oben im DataFrame stehen.

Spalten nach einer einzelnen Variable sortieren

Wenn wir zum Beispiel sort_values() auf die Spalte weight_kg des DataFrame Hunde anwenden, erhalten wir oben den leichtesten Hund, Stella den Chihuahua, und unten den schwersten Hund, Bernie den Bernhardiner.

dogs.sort_values("weight_kg")
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Wenn du das Argument ascending auf False setzt, werden die Daten in umgekehrter Reihenfolge sortiert, also vom schwersten zum leichtesten Hund.

dogs.sort_values("weight_kg", ascending=False)
      name        breed  color  height_cm  weight_kg date_of_birth
6   Bernie  St. Bernard  White         77         74    2018-02-27
4      Max     Labrador  Black         59         29    2017-01-20
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
5   Stella    Chihuahua    Tan         18          2    2015-04-20

Spalten nach mehreren Variablen sortieren

Wir können nach mehreren Variablen sortieren, indem wir eine Liste von Spaltennamen an sort_values übergeben. Hier sortieren wir zuerst nach Gewicht und dann nach Größe. Jetzt werden Charlie, Lucy und Bella vom Kleinsten zum Größten geordnet, obwohl sie alle gleich viel wiegen.

dogs.sort_values(["weight_kg", "height_cm"])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
0    Bella     Labrador  Brown         56         24    2013-07-01
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Um die Richtung zu ändern, in der die Werte sortiert werden, übergibst du eine Liste an das aufsteigende Argument, um anzugeben, in welche Richtung die Sortierung für jede Variable erfolgen soll. Jetzt werden Charlie, Lucy und Bella vom Größten zum Kleinsten geordnet.

dogs.sort_values(["weight_kg", "height_cm"], ascending=[True, False])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
1  Charlie       Poodle  Black         43         24    2016-09-16
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Pandas zum Sortieren nach Zeilen verwenden

Manchmal möchtest du Zeilen nicht nach bestimmten Spalten, sondern nach ihren Zeilenbezeichnungen (d. h. dem Index des DataFrame) neu anordnen. Wenn das der Fall ist, kannst du die Methode sort_index() anstelle von sort_values() verwenden. Denke daran, dass sort_index() deine Zeilen standardmäßig in aufsteigender Reihenfolge nach ihrem Index sortiert:

# Sort rows by their index (ascending)
dogs_sorted = dogs.sort_index()
print(dogs_sorted)

Wenn du die Zeilen in absteigender Reihenfolge sortieren willst, gibst du einfach ascending=False an:

# Sort rows by their index (descending)
dogs_sorted_desc = dogs.sort_index(ascending=False)
print(dogs_sorted_desc)

Wenn du einen mehrstufigen (hierarchischen) Index hast, kann sort_index() auch damit umgehen, indem es mehrere Stufen sortiert. Du übergibst einfach eine Liste an die Parameter level oder ascending (so wie wir früher eine Liste für sort_values() übergeben mussten):

# Sort rows by multiple levels of a multi-level index
dogs_sorted_multi = dogs.sort_index(level=[0, 1], ascending=[True, False])
print(dogs_sorted_multi)
 

Pandas Sortierwerte Interaktives Beispiel

Im folgenden Beispiel sortierst du homelessness nach der Anzahl der obdachlosen Personen, von der kleinsten zur größten, und speicherst dies als homelessness_ind. Schließlich druckst du den Kopf des sortierten DataFrames aus.

# Sort homelessness by individuals
homelessness_ind = homelessness.sort_values("individuals")

# Print the top few rows
print(homelessness_ind.head())

Wenn wir den obigen Code ausführen, erhalten wir das folgende Ergebnis:

                region         state  individuals  family_members  state_pop
50            Mountain       Wyoming        434.0           205.0     577601
34  West North Central  North Dakota        467.0            75.0     758080
7       South Atlantic      Delaware        708.0           374.0     965479
39         New England  Rhode Island        747.0           354.0    1058287
45         New England       Vermont        780.0           511.0     624358

Probiere es selbst aus.

Wenn du mehr über das Sortieren und Unterteilen der Daten erfahren möchtest, schau dir dieses Video aus unserem Kurs Datenbearbeitung mit Pandas an.

Dieser Inhalt stammt aus dem DataCamp-Kurs " Datenbearbeitung mit Pandas " von Maggie Matsui und Richie Cotton.

Weiteres Lernen

In diesem Artikel haben wir u.a. gelernt, wann sort_index() vs. sort_values() zu verwenden ist: Verwende sort_values(), wenn du die Zeilen anhand der Spaltenwerte neu anordnen möchtest; verwende sort_index(), wenn du die Zeilen anhand der Zeilenbeschriftungen (dem Index des DataFrame) neu anordnen möchtest.

Wir haben viele weitere nützliche Pandas-Tutorials, damit du weiter lernen kannst, darunter The ultimate Guide to Pandas for Beginners, damit du weiter üben kannst. Wir haben auch andere spezifische Anleitungen für häufige Probleme, z. B. wie man CSV-Daten in Pandas importiert und wie man DataFrames in Pandas verbindet. Vergiss auch nicht, unseren Lernpfad zur Python-Programmierung zu besuchen, um deine Fähigkeiten zu verbessern. 

Themen

Besuche Python-Kurse mit DataCamp

Kurs

Einführung in Python

4 Std.
6.8M
Lerne in nur vier Stunden die Grundlagen der Datenanalyse mit Python und entdecke beliebte Python-Pakete.
Details anzeigenRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

Wie sortiert man ein Wörterbuch in Python nach Werten?

Lerne effiziente Methoden, um ein Wörterbuch in Python nach Werten zu sortieren. Lerne, wie du Sachen aufsteigend oder absteigend sortieren kannst, und hol dir ein paar coole Tipps zum Sortieren von Schlüsseln.
Neetika Khandelwal's photo

Neetika Khandelwal

Tutorial

Loop-Schleifen in Python-Tutorial

Lerne, wie du For-Schleifen in Python umsetzt, um eine Sequenz oder die Zeilen und Spalten eines Pandas-DataFrame zu durchlaufen.
Aditya Sharma's photo

Aditya Sharma

Tutorial

Wie man Listen in Python aufteilt: Einfache Beispiele und fortgeschrittene Methoden

Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Allan Ouko's photo

Allan Ouko

Tutorial

Python-Methode list() mit Beispielen erklärt

Lerne, wie du mit der Python-Funktion index() die Position von Elementen in Listen findest.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Python NaN: 4 Möglichkeiten, um in Python nach fehlenden Werten zu suchen

Schau dir 4 Möglichkeiten an, wie du NaN-Werte in Python mit NumPy und Pandas erkennen kannst. Lerne die wichtigsten Unterschiede zwischen NaN und None kennen, um Daten effizient zu bereinigen und zu analysieren.
Adel Nehme's photo

Adel Nehme

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

Mehr anzeigenMehr anzeigen