Extraire l’année et le mois d’une colonne de type datetime dans Pandas est une tâche courante. Cet article explore trois méthodes efficaces, en comparant leurs forces et leurs faiblesses pour vous aider à choisir la meilleure approche en fonction de vos besoins.
Table des matières
Utilisation de l’accesseur .dt
L’accesseur .dt
fournit un moyen simple et efficace d’extraire les composants de la date et de l’heure. C’est souvent la méthode préférée en raison de sa lisibilité et de sa concision.
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)
Ce code affichera :
date year month
0 2024-03-15 2024 3
1 2023-11-20 2023 11
2 2024-05-10 2024 5
Utilisation de la méthode strftime()
La méthode strftime()
offre une plus grande flexibilité, permettant de personnaliser le format de sortie. Ceci est particulièrement utile lorsque vous avez besoin de représentations de chaînes spécifiques de l’année et du mois pour des rapports ou autres usages.
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') # Utilisez '%b' pour le nom abrégé du mois, '%B' pour le nom complet
print(df)
Cela produira :
date year month
0 2024-03-15 2024 03
1 2023-11-20 2023 11
2 2024-05-10 2024 05
N’oubliez pas de consulter la documentation Python de strftime()
pour une liste complète des codes de format.
Accès direct avec DatetimeIndex
Si votre colonne ‘date’ est déjà un DatetimeIndex
, vous pouvez accéder directement aux attributs année et mois. Bien que moins courant, cela peut être efficace si vos données sont déjà dans ce format.
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)
Cela produit la même sortie que le premier exemple. Cependant, cette méthode est généralement moins préférée à moins que vous ne travailliez déjà avec un objet DatetimeIndex
.
Conclusion : L’accesseur .dt
offre l’approche la plus concise et la plus efficace pour la plupart des scénarios. strftime()
offre un meilleur contrôle du formatage, tandis que l’accès direct à DatetimeIndex
est utile selon les situations. Choisissez la méthode qui correspond le mieux à vos besoins et à votre style de codage. Assurez-vous toujours que votre colonne ‘date’ est de type datetime en utilisant pd.to_datetime()
si nécessaire.