Heim > Backend-Entwicklung > Python-Tutorial > Wie wählt man in Python effizient DataFrame-Zeilen innerhalb eines bestimmten Datumsbereichs aus?

Wie wählt man in Python effizient DataFrame-Zeilen innerhalb eines bestimmten Datumsbereichs aus?

Patricia Arquette
Freigeben: 2024-12-13 13:11:09
Original
296 Leute haben es durchsucht

How to Efficiently Select DataFrame Rows Within a Specific Date Range in Python?

DataFrame-Zeilen innerhalb eines Datumsbereichs auswählen

In Python sind DataFrames ein leistungsstarkes Werkzeug zum Speichern und Bearbeiten von Tabellendaten. Eine häufig anzutreffende Aufgabe ist das Filtern von Zeilen basierend auf einem bestimmten Datumsbereich. Um dies zu erreichen, haben wir die folgenden Optionen:

Methode 1: Verwenden einer Booleschen Maske

Wenn Ihr DataFrame eine Datumsspalte mit dem Datentyp datetime64[ns] enthält, Sie können eine boolesche Maske erstellen, um Zeilen auszuwählen, die in den gewünschten Bereich fallen:

# Ensure date column is a datetime64 series
df['date'] = pd.to_datetime(df['date']) 

# Create a boolean mask
mask = (df['date'] > start_date) & (df['date'] <= end_date)

# Select the sub-DataFrame
sub_df = df.loc[mask]
Nach dem Login kopieren

Methode 2: Einen DatetimeIndex festlegen

Ein weiterer effizienter Ansatz besteht darin, die Datumsspalte als Index des DataFrame festzulegen und so einen DatetimeIndex zu erstellen:

df = df.set_index(['date'])

# Select rows using index slicing
sub_df = df.loc[start_date:end_date]
Nach dem Login kopieren

Diese Methode ist besonders nützlich für häufige Fälle Datumsbasierte Auswahlen, da sie im Vergleich zur Verwendung eines booleschen Werts eine schnellere Leistung bieten Maske.

Beispiel:

Betrachten Sie den folgenden DataFrame:

>>> df
            value  date
0          0.2   2021-06-01
1          0.3   2021-06-05
2          0.4   2021-06-10
3          0.5   2021-06-15
Nach dem Login kopieren

Um Zeilen für den Monat Juni 2021 auszuwählen, können wir beides verwenden Methode:

Methode 1: Boolean Maske

mask = (df['date'] > '2021-06-01') & (df['date'] <= '2021-06-30')
sub_df = df.loc[mask]
Nach dem Login kopieren

Methode 2: DatetimeIndex

df = df.set_index(['date'])
sub_df = df.loc['2021-06-01':'2021-06-30']
Nach dem Login kopieren

Beide Methoden geben den folgenden Unterdatenrahmen zurück:

>>> sub_df
            value  date
0          0.2   2021-06-01
1          0.3   2021-06-05
2          0.4   2021-06-10
3          0.5   2021-06-15
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie wählt man in Python effizient DataFrame-Zeilen innerhalb eines bestimmten Datumsbereichs aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage