Comment extraire le mois et l'année séparément de la colonne Datetime dans Pandas

Suraj Joshi 30 janvier 2023
  1. pandas.Series.dt.year() et pandas.Series.dt.month() méthodes pour extraire le mois et l’année
  2. Méthode strftime() pour extraire l’année et le mois
  3. pandas.DatetimeIndex.month et pandas.DatetimeIndex.year pour extraire l’année et le mois
Comment extraire le mois et l'année séparément de la colonne Datetime dans Pandas

Nous pourrions extraire l’année et le mois de la colonne Datetime en utilisant respectivement les méthodes pandas.Series.dt.year() et pandas.Series.dt.month(). Si les données ne sont pas de type Datetime, nous devons d’abord les convertir en Datetime. Nous pouvons également extraire l’année et le mois en utilisant pandas.DatetimeIndex.month ainsi que les méthodes pandas.DatetimeIndex.year et strftime().

pandas.Series.dt.year() et pandas.Series.dt.month() méthodes pour extraire le mois et l’année

Les méthodes pandas.Series.dt.year() et pandas.Series.dt.month() appliquées au type Datetime retournent le tableau NumPy de l’année et du mois respectivement de l’entrée Datetime dans l’objet série.

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)

Production:

        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

Cependant, si la colonne n’est pas de type Datetime, nous devons d’abord convertir la colonne en type Datetime en utilisant la méthode to_datetime().

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)

Production:

        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

Méthode strftime() pour extraire l’année et le mois

La méthode strftime() prend Datetime prend les codes de format en entrée et retourne une chaîne représentant le format spécifique spécifié en sortie. Nous utilisons %Y et %m comme codes de format pour extraire l’année et le mois.

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)

Production:

        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 et pandas.DatetimeIndex.year pour extraire l’année et le mois

Une autre approche simple pour extraire le mois et l’année de la colonne Datetime consiste à récupérer les valeurs des attributs year et month des objets de pandas.DatetimeIndex](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html) classe.

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)

Production:

        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

La classe pandas.DatetimeIndex est un ndarray immuable de données datetime64. Il a des attributs comme year, month, day, etc.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn