Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert

Asad Riaz 30 Januar 2023
  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,

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

Verwandter Artikel - Pandas DataFrame