Pandas : créer une colonne de date à partir de l’année, du mois et du jour
Vous pouvez utiliser la syntaxe de base suivante pour créer une colonne de date à partir des colonnes année, mois et jour dans un DataFrame pandas :
df['date'] = pd.to_datetime(dict(year=df.year, month=df.month, day=df.day))
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : créer une colonne de date à partir de l’année, du mois et du jour dans Pandas
Supposons que nous ayons le DataFrame pandas suivant qui montre les ventes réalisées par une entreprise à différentes dates :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'year': [2021, 2022, 2022, 2022, 2022, 2022, 2022, 2022],
'month': [7, 1, 1, 2, 5, 10, 11, 12],
'day': [4, 15, 25, 27, 27, 24, 10, 18],
'sales': [140, 200, 250, 180, 130, 87, 90, 95]})
#view DataFrame
print(df)
year month day sales
0 2021 7 4 140
1 2022 1 15 200
2 2022 1 25 250
3 2022 2 27 180
4 2022 5 27 130
5 2022 10 24 87
6 2022 11 10 90
7 2022 12 18 95
Nous pouvons utiliser la syntaxe suivante pour créer une nouvelle colonne appelée date qui combine les valeurs des colonnes year , month et day dans le DataFrame pour créer une date pour chaque ligne :
#create date column from year, month, and day columns
df['date'] = pd.to_datetime(dict(year=df.year, month=df.month, day=df.day))
#view updated DataFrame
print(df)
year month day sales date
0 2021 7 4 140 2021-07-04
1 2022 1 15 200 2022-01-15
2 2022 1 25 250 2022-01-25
3 2022 2 27 180 2022-02-27
4 2022 5 27 130 2022-05-27
5 2022 10 24 87 2022-10-24
6 2022 11 10 90 2022-11-10
7 2022 12 18 95 2022-12-18
Notez que la colonne de date contient des valeurs de date basées sur les valeurs des colonnes année , mois et jour de chaque ligne.
Si nous utilisons df.info() pour obtenir des informations sur chaque colonne du DataFrame, nous pouvons voir que la nouvelle colonne de date a un type de données datetime64 :
#display information about each column in DataFrame
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 year 8 non-null int64
1 month 8 non-null int64
2 day 8 non-null int64
3 sales 8 non-null int64
4 date 8 non-null datetime64[ns]
dtypes: datetime64[ns](1), int64(4)
memory usage: 388.0 bytes
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment ajouter et soustraire des jours à une date dans Pandas
Comment sélectionner des lignes entre deux dates dans Pandas
Comment calculer une différence entre deux dates chez les pandas