Wie man Monat und Jahr getrennt aus der Datetime-Spalte in Pandas extrahiert

Suraj Joshi 30 Januar 2023
  1. pandas.Series.dt.year() und pandas.Series.dt.month() Methoden zum Extrahieren von Monat und Jahr
  2. strftime() Methode zum Extrahieren von Jahr und Monat
  3. pandas.DatetimeIndex.month und pandas.DatetimeIndex.year zum Extrahieren von Jahr und Monat
Wie man Monat und Jahr getrennt aus der Datetime-Spalte in Pandas extrahiert

Wir könnten Jahr und Monat aus der Spalte Datetime mit den Methoden pandas.Series.dt.year() bzw. pandas.Series.dt.month() extrahieren. Wenn die Daten nicht vom Typ Datetime sind, müssen wir sie zunächst in Datetime konvertieren. Wir können auch Jahr und Monat extrahieren, indem wir pandas.DatetimeIndex.month zusammen mit pandas.DatetimeIndex.year und strftime() Methode verwenden.

pandas.Series.dt.year() und pandas.Series.dt.month() Methoden zum Extrahieren von Monat und Jahr

Die Methoden pandas.Series.dt.year() und pandas.Series.dt.month(), die auf den Typ Datetime angewendet werden, liefern ein NumPy Array von Jahr bzw. Monat des Eintrags Datetime im Serienobjekt.

import pandas as pd
import numpy as np
import datetime

list_of_dates = ["2019-11-20", "2020-01-02", "2020-02-05", "2020-03-10", "2020-04-16"]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"]
df = pd.DataFrame({"Joined date": pd.to_datetime(list_of_dates)}, index=employees)

df["Year"] = df["Joined date"].dt.year
df["Month"] = df["Joined date"].dt.month
print(df)

Ausgabe:

        Joined date  Year  Month
Hisila   2019-11-20  2019     11
Shristi  2020-01-02  2020      1
Zeppy    2020-02-05  2020      2
Alina    2020-03-10  2020      3
Jerry    2020-04-16  2020      4

Wenn die Spalte jedoch nicht vom Typ Datetime ist, sollten wir die Spalte zunächst mit der Methode to_datetime() in den Typ Datetime konvertieren.

import pandas as pd
import numpy as np
import datetime

list_of_dates = ["11/20/2019", "01/02/2020", "02/05/2020", "03/10/2020", "04/16/2020"]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"]
df = pd.DataFrame({"Joined date": pd.to_datetime(list_of_dates)}, index=employees)
df["Joined date"] = pd.to_datetime(df["Joined date"])

df["Year"] = df["Joined date"].dt.year
df["Month"] = df["Joined date"].dt.month
print(df)

Ausgabe:

        Joined date  Year  Month
Hisila   2019-11-20  2019     11
Shristi  2020-01-02  2020      1
Zeppy    2020-02-05  2020      2
Alina    2020-03-10  2020      3
Jerry    2020-04-16  2020      4

strftime() Methode zum Extrahieren von Jahr und Monat

Die Methode strftime() nimmt Datetime Formatcodes als Eingabe und gibt eine Zeichenkette zurück, die das in der Ausgabe angegebene spezifische Format repräsentiert. Wir benutzen %Y und %m als Formatcodes, um Jahr und Monat zu extrahieren.

import pandas as pd
import numpy as np
import datetime

list_of_dates = ["2019-11-20", "2020-01-02", "2020-02-05", "2020-03-10", "2020-04-16"]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"]
df = pd.DataFrame({"Joined date": pd.to_datetime(list_of_dates)}, index=employees)

df["year"] = df["Joined date"].dt.strftime("%Y")
df["month"] = df["Joined date"].dt.strftime("%m")

print(df)

Ausgabe:

        Joined date  year month
Hisila   2019-11-20  2019    11
Shristi  2020-01-02  2020    01
Zeppy    2020-02-05  2020    02
Alina    2020-03-10  2020    03
Jerry    2020-04-16  2020    04

pandas.DatetimeIndex.month und pandas.DatetimeIndex.year zum Extrahieren von Jahr und Monat

Ein weiterer einfacher Ansatz zur Extraktion von Monat und Jahr aus der Spalte Datetime besteht darin, die Werte der Jahres- und Monatsattribute von Objekten der Klasse pandas.DatetimeIndex abzurufen.

import pandas as pd
import numpy as np
import datetime

list_of_dates = ["2019-11-20", "2020-01-02", "2020-02-05", "2020-03-10", "2020-04-16"]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"]
df = pd.DataFrame({"Joined date": pd.to_datetime(list_of_dates)}, index=employees)

df["year"] = pd.DatetimeIndex(df["Joined date"]).year
df["month"] = pd.DatetimeIndex(df["Joined date"]).month

print(df)

Ausgabe:

        Joined date  Year  Month
Hisila   2019-11-20  2019     11
Shristi  2020-01-02  2020      1
Zeppy    2020-02-05  2020      2
Alina    2020-03-10  2020      3
Jerry    2020-04-16  2020      4

Die Klasse pandas.DatetimeIndex ist ein unveränderliches ndarray von datetime64-Daten. Sie hat Attribute wie year, month, day, usw.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn