Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
-
DataFrame
Sortierreihenfolge - Argumentaufsteigend
-
DataFrame
Sortierreihenfolge - Argumentna_position
Wir werden die Methode pandas.DataFrame.sort_values
zum Sortieren der DataFrame
-Werte und ihre Optionen wie aufsteigend
zur Angabe der Sortierreihenfolge und na_position
, die die Position von NaN
im sortierten Ergebnis bestimmt, vorstellen.
Betrachten Sie den folgenden DataFrame
,
import pandas as pd
df = pd.DataFrame(
{
"col1": ["g", "t", "n", "w", "n", "g"],
"col2": [5, 2, 5, 1, 3, 6],
"col3": [0, 7, 2, 8, 1, 2],
}
)
print(df)
Wenn Sie diesen Code ausführen, erhalten Sie die folgende Ausgabe, die noch nicht sortiert ist.
col1 col2 col3
0 g 5 0
1 t 2 7
2 n 5 2
3 w 1 8
4 n 3 1
5 g 6 2
Nun könnten wir den DataFrame
mit den untenstehenden Codes sortieren.
import pandas as pd
df = pd.DataFrame(
{
"col1": ["g", "t", "n", "w", "n", "g"],
"col2": [5, 2, 5, 1, 3, 6],
"col3": [0, 7, 2, 8, 1, 2],
}
)
print(df.sort_values(by=["col1"]))
Wir sortieren den DataFrame
nach col1
. Nachdem Sie den obigen Code ausgeführt haben, erhalten Sie die folgende Ausgabe.
col1 col2 col3
0 g 5 0
5 g 6 2
2 n 5 2
4 n 3 1
1 t 2 7
3 w 1 8
Wir können auch mehr als eine Spalte zum Sortieren verwenden. Lassen Sie uns die letzte Zeile des obigen Codes wie folgt ändern,
print(df.sort_values(by=["col1", "col2"]))
Nachdem der Code ausgeführt wurde, erhalten wir die folgende Ausgabe.
col1 col2 col3
0 g 5 0
5 g 6 2
4 n 3 1
2 n 5 2
1 t 2 7
3 w 1 8
Nun wird auch DataFrame
weiter nach col2
sortiert.
DataFrame
Sortierreihenfolge - Argument aufsteigend
Standardmäßig erfolgt die Sortierung in aufsteigender Reihenfolge, um DataFrame
in absteigender Reihenfolge zu sortieren, müssen wir das Flag ascending=False
setzen.
print(df.sort_values(by=["col1", "col2"], ascending=False))
Nachdem der Code ausgeführt wurde, erhalten wir die folgende Ausgabe.
col1 col2 col3
3 w 1 8
1 t 2 7
2 n 5 2
4 n 3 1
5 g 6 2
0 g 5 0
DataFrame
Sortierreihenfolge - Argument na_position
na_position
gibt die Position von NaN
nach der Sortierung an, d.h. letztes
setzt NaN
an das Ende. Sein Standardwert ist erster
, der NaN
an den Anfang des sortierten Ergebnisses setzt.
Betrachten Sie den folgenden DataFrame
,
import numpy as np
import pandas as pd
s = pd.Series([np.nan, 2, 4, 10, 7])
print(s.sort_values(na_position="last"))
Nachdem der Code ausgeführt wurde, erhalten wir die folgende Ausgabe.
1 2.0
2 4.0
4 7.0
3 10.0
0 NaN