So filtern Sie Pandas DataFrame-Zeilen nach Datum

Von Fabian
Kategorie: Python
Lesezeit: 2 Minuten

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.

Beispiel 1: Filtern nach Datum anhand des Index

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]},
                   index = ['2020-01-15', '2020-01-18', '2020-01-22', '2020-01-24'])

# Dataframe anzeigen 
print(df)

                sales   customers
2020-01-15  4   2
2020-01-18  11  6
2020-01-22  13  9
2020-01-24  9   7

Da sich die Daten im Index des DataFrame befinden, können wir einfach die .loc-Funktion verwenden, um die Zeilen basierend auf einem Datumsbereich zu filtern:

# Filter für Zeilen, deren Datum zwischen dem 15. und 22. Januar liegt
df.loc['2020-01-15':'2020-01-22']

                sales   customers
2020-01-15  4   2
2020-01-18  11  6
2020-01-22  13  9

Beachten Sie, dass beim Filtern der Zeilen mit df.loc[Start: nde] die Daten für Start und Ende in der Ausgabe enthalten sind.

Beispiel 2: Filtern nach Datum mithilfe einer Spalte

Angenommen, wir haben die folgenden Pandas DataFrame:

import pandas as pd

# Dataframe erstellen
df = pd.DataFrame({'sales': [4, 11, 13, 9],
                   'day': ['2020-01-15', '2020-01-18', '2020-01-22', '2020-01-24']})

# Dataframe anzeigen 
print(df)

        sales   day
0   4   2020-01-15
1   11  2020-01-18
2   13  2020-01-22
3   9   2020-01-24

Da sich die Daten in einer der Spalten des DataFrame befinden, können wir stattdessen boolesche Operatoren verwenden, um die Zeilen basierend auf einem Datumsbereich zu filtern:

# Filter für Zeilen, deren Datum nach dem 15. Januar und vor dem 23. Januar liegt 
df[(df['day'] > '2020-01-15') & (df['day'] < '2020-01-23')]

        sales   day
1   11  2020-01-18
2   13  2020-01-22

Beachten Sie, dass wir eine ähnliche Syntax verwenden können, um die Zeilen nach Daten außerhalb eines bestimmten Bereichs zu filtern:

# Filter für Zeilen, deren Datum vor dem 20. Januar oder nach dem 22. Januar liegt 
df[(df['day'] < '2020-01-20') | (df['day'] > '2020-01-22')]


        sales   day
0   4   2020-01-15
1   11  2020-01-18
3   9   2020-01-24

Zusätzliche Ressourcen

So konvertieren Sie Datetime in Pandas
So finden Sie eindeutige Werte in mehreren Spalten in Pandas

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: