Oft möchten Sie einen Pandas DataFrame nach einer Spalte sortieren, die Datumsangaben enthält. Glücklicherweise ist dies mit der Funktion sort_values() einfach zu bewerkstelligen.

Dieses Tutorial zeigt einige Beispiele für die praktische Verwendung dieser Funktion.

Beispiel 1: Sortieren nach Datumsspalte

Angenommen, wir haben die folgenden Pandas DataFrame:

import pandas as pd

# Dataframe erstellen
df = pd.DataFrame({'sales': [4, 11, 13, 9],
                   'customers': [2, 6, 9, 7],
                   'date': ['2020-01-25', '2020-01-18', '2020-01-22', '2020-01-21']})

# Dataframe anzeigen
print(df)

   sales  customers        date
0      4          2  2020-01-25
1     11          6  2020-01-18
2     13          9  2020-01-22
3      9          7  2020-01-21

Zuerst müssen wir die Funktion to_datetime() verwenden, um die Spalte 'date' in ein datetime-Objekt zu konvertieren:

df['date'] = pd.to_datetime(df['date'])

Als nächstes können wir das DataFrame basierend auf der Spalte 'Datum' mit der Funktion sort_values() sortieren:

df.sort_values(by='date')

sales   customers   date
1   11  6     2020-01-18
3   9   7     2020-01-21
2   13  9     2020-01-22
0   4   2     2020-01-25

Standardmäßig sortiert diese Funktion die Daten in aufsteigender Reihenfolge. Sie können jedoch ascending=False angeben, um stattdessen in absteigender Reihenfolge zu sortieren:

df.sort_values(by='date', ascending=False)

sales   customers   date
0   4   2     2020-01-25
2   13  9     2020-01-22
3   9   7     2020-01-21
1   11  6     2020-01-18

Beispiel 2: Sortieren nach mehreren Datumsspalten

Angenommen, wir haben die folgenden Pandas DataFrame:

import pandas as pd

# Dataframe erstellen
df = pd.DataFrame({'person': ['A', 'B', 'C', 'D'],
                   'order_date': ['2020-01-15', '2020-01-15', '2020-01-20', '2020-01-20'],
                   'receive_date': ['2020-01-25', '2020-01-18', '2020-01-22', '2020-01-21']})

# Dataframe anzeigen
print(df)

  person  order_date receive_date
0      A  2020-01-15   2020-01-25
1      B  2020-01-15   2020-01-18
2      C  2020-01-20   2020-01-22
3      D  2020-01-20   2020-01-21

Wir können die Funktion sort_values verwenden, um das DataFrame nach mehreren Spalten zu sortieren, indem wir der Funktion einfach mehrere Spaltennamen bereitstellen:

# Konvertieren Sie beide Datumsspalten in Datetime-Objekte
df[['order_date','receive_date']] = df[['order_date','receive_date']].apply(pd.to_datetime)

# Sortieren des DateFrames nach order_date und dann nach receive_date
df.sort_values(by=['order_date', 'receive_date'])

person  order_date  receive_date
1   B   2020-01-15  2020-01-18
0   A   2020-01-15  2020-01-25
3   D   2020-01-20  2020-01-21
2   C   2020-01-20  2020-01-22

Der DataFrame wird jetzt in aufsteigender Reihenfolge nach order_date und dann in aufsteigender Reihenfolge nach receive_date sortiert.

Zusätzliche Ressourcen

So filtern Sie Pandas DataFrame-Zeilen nach Datum
So konvertieren Sie Datetime in Pandas

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: