Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert

  1. DataFrame Sortierreihenfolge - Argument aufsteigend
  2. DataFrame Sortierreihenfolge - Argument na_position
Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert

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,

Python
 pythonCopyimport 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.

 blankCopy    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.

Python
 pythonCopyimport 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.

 blankCopy    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,

Python
 pythonCopyprint(df.sort_values(by=["col1", "col2"]))

Nachdem der Code ausgeführt wurde, erhalten wir die folgende Ausgabe.

 blankCopy    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.

Python
 pythonCopyprint(df.sort_values(by=["col1", "col2"], ascending=False))

Nachdem der Code ausgeführt wurde, erhalten wir die folgende Ausgabe.

 blankCopy    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,

Python
 pythonCopyimport 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.

 blankCopy1     2.0
2     4.0
4     7.0
3    10.0
0     NaN
Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren

Verwandter Artikel - Pandas DataFrame