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.