Oft möchten Sie einen Pandas-DataFrame nach einer oder mehreren Spalten sortieren. In diesem Tutorial wird erklärt, wie Sie dies mit der pandas sort_values- Funktion tun.

So sortieren Sie Pandas DataFrames

Angenommen, wir haben den folgenden Pandas DataFrame mit 10 Zeilen und 4 Spalten:

import pandas as pd
import numpy as np

#Dataframe erstellen
df = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [np.nan, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

df

    player  points  assists rebounds
0   A   25  5   NaN
1   B   20  7   8
2   C   14  7   10
3   D   16  8   6
4   E   27  5   6
5   F   20  7   9
6   G   12  6   6
7   H   15  9   10
8   I   14  9   10
9   J   19  5   7

Beispiel 1: Nach einer Spalte aufsteigend sortieren.

Der folgende Codeausschnitt zeigt, wie Sie den DataFrame nach einer Spalte in aufsteigender Reihenfolge sortieren:

#sortieren nach Assists vom kleinsten zum größten
df.sort_values(by=['assists'])

    player  points  assists rebounds
0   A   25  5   NaN
4   E   27  5   6.0
9   J   19  5   7.0
6   G   12  6   6.0
1   B   20  7   8.0
2   C   14  7   10.0
5   F   20  7   9.0
3   D   16  8   6.0
7   H   15  9   10.0
8   I   14  9   10.0

Beispiel 2: Nach einer Spalte absteigend sortieren.

Der folgende Codeausschnitt zeigt, wie Sie den DataFrame nach einer Spalte in aufsteigender Reihenfolge sortieren:

#sortieren nach Rebounds vom größten zum kleinsten
df.sort_values(by=['rebounds'], ascending=False)

    player  points  assists rebounds
2   C   14  7   10.0
7   H   15  9   10.0
8   I   14  9   10.0
5   F   20  7   9.0
1   B   20  7   8.0
9   J   19  5   7.0
3   D   16  8   6.0
4   E   27  5   6.0
6   G   12  6   6.0
0   A   25  5   NaN

Beachten Sie, dass beim Sortieren nach einer Zeichenspalte die Zeilen ascending=False in umgekehrter alphabetischer Reihenfolge sortiert werden:

#Nach Zeichenspalte sortieren
df.sort_values(by=['player'], ascending=False)

    player  points  assists rebounds
9   J   19  5   7.0
8   I   14  9   10.0
7   H   15  9   10.0
6   G   12  6   6.0
5   F   20  7   9.0
4   E   27  5   6.0
3   D   16  8   6.0
2   C   14  7   10.0
1   B   20  7   8.0
0   A   25  5   NaN

Beispiel 3: Sortieren nach mehreren Spalten.

Der folgende Codeausschnitt zeigt, wie der DataFrame nach mehreren Spalten sortiert wird, jeweils in aufsteigender Reihenfolge:

#sort by assists ascending, then rebounds ascending
df.sort_values(by=['assists', 'rebounds'])

    player  points  assists rebounds
4   E   27  5   6.0
9   J   19  5   7.0
0   A   25  5   NaN
6   G   12  6   6.0
1   B   20  7   8.0
5   F   20  7   9.0
2   C   14  7   10.0
3   D   16  8   6.0
7   H   15  9   10.0
8   I   14  9   10.0

Beachten Sie, dass Sie auch eine Spalte aufsteigend und eine andere absteigend sortieren können, indem Sie mehrere Argumente an ascending übergeben:

#sort by assists ascending, then rebounds descending
df.sort_values(by=['assists', 'rebounds'], ascending=[True, False])


player  points  assists rebounds
9   J   19  5   7.0
4   E   27  5   6.0
0   A   25  5   NaN
6   G   12  6   6.0
2   C   14  7   10.0
5   F   20  7   9.0
1   B   20  7   8.0
3   D   16  8   6.0
7   H   15  9   10.0
8   I   14  9   10.0

Beispiel 4: Sortieren Sie zuerst NaNs.

Standardmäßig setzt pandas NaNs an letzter Stelle, aber Sie können angeben, dass NaNs zuerst platziert werden sollen:

#sort by assists ascending, then rebounds descending
df.sort_values(by=['rebounds'], na_position='first')


    player  points  assists rebounds
0   A   25  5   NaN
3   D   16  8   6.0
4   E   27  5   6.0
6   G   12  6   6.0
9   J   19  5   7.0
1   B   20  7   8.0
5   F   20  7   9.0
2   C   14  7   10.0
7   H   15  9   10.0
8   I   14  9   10.0

Die vollständige Dokumentation zur Funktion sort_values finden Sie hier.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: