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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *