Oft sind Sie daran interessiert, alle eindeutigen Werte in mehreren Spalten eines Pandas DataFrame zu finden. Glücklicherweise ist dies mit der Funktion Pandas unique() in Kombination mit der Funktion ravel …
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
So finden Sie eindeutige Werte in mehreren Spalten in Pandas
So filtern Sie Pandas DataFrame-Zeilen nach Datum
Oft möchten Sie die Zeilen eines Pandas DataFrame nach Datum filtern. Praktischerweise ist dies ziemlich einfach und in diesem Tutorial werden je nach Struktur Ihres DataFrame zwei Möglichkeiten erläutert.