Data Analysis

Effizientes Extrahieren von Jahr und Monat aus Pandas Datetime-Spalten

Spread the love

Das Extrahieren von Jahr und Monat aus einer Datumszeit-Spalte in Pandas ist eine gängige Aufgabe. Dieser Artikel untersucht drei effiziente Methoden und vergleicht deren Stärken und Schwächen, um Ihnen bei der Auswahl des besten Ansatzes für Ihre Bedürfnisse zu helfen.

Inhaltsverzeichnis

Verwendung des .dt-Accessors

Der .dt-Accessor bietet eine einfache und effiziente Möglichkeit, Datumszeitkomponenten zu extrahieren. Er ist aufgrund seiner Lesbarkeit und Prägnanz oft die bevorzugte Methode.


import pandas as pd

data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month

print(df)

Dieser Code gibt aus:


         date  year  month
0 2024-03-15  2024      3
1 2023-11-20  2023     11
2 2024-05-10  2024      5

Verwendung der strftime()-Methode

Die strftime()-Methode bietet mehr Flexibilität und ermöglicht die Anpassung des Ausgabeformats. Dies ist besonders nützlich, wenn Sie spezifische String-Darstellungen von Jahr und Monat für Berichte oder andere Zwecke benötigen.


import pandas as pd

data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)

df['year'] = df['date'].dt.strftime('%Y')
df['month'] = df['date'].dt.strftime('%m') # Verwenden Sie '%b' für abgekürzten Monatsnamen, '%B' für vollständigen Namen

print(df)

Dies erzeugt:


         date  year month
0 2024-03-15  2024   03
1 2023-11-20  2023   11
2 2024-05-10  2024   05

Beachten Sie die Python strftime()-Dokumentation für eine vollständige Liste der Formatcodes.

Direkter Zugriff mit DatetimeIndex

Wenn Ihre ‚date‘-Spalte bereits ein DatetimeIndex ist, können Sie direkt auf die Jahr- und Monatsattribute zugreifen. Obwohl weniger häufig, kann dies effizient sein, wenn Ihre Daten bereits in diesem Format vorliegen.


import pandas as pd

data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)

date_index = pd.DatetimeIndex(df['date'])
df['year'] = date_index.year
df['month'] = date_index.month

print(df)

Dies erzeugt die gleiche Ausgabe wie das erste Beispiel. Diese Methode wird jedoch im Allgemeinen weniger bevorzugt, es sei denn, Sie arbeiten bereits mit einem DatetimeIndex-Objekt.

Fazit: Der .dt-Accessor bietet für die meisten Szenarien den prägnantesten und effizientesten Ansatz. strftime() bietet eine größere Formatierungskontrolle, während der direkte DatetimeIndex-Zugriff situationsbedingt nützlich ist. Wählen Sie die Methode, die am besten zu Ihren Bedürfnissen und Ihrem Codierungsstil passt. Stellen Sie immer sicher, dass Ihre ‚date‘-Spalte mit pd.to_datetime() den Datentyp datetime hat, falls erforderlich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert