Comment ajouter et soustraire des mois à une date dans Pandas



Vous pouvez utiliser les méthodes suivantes pour ajouter et soustraire des mois à une date dans pandas :

Méthode 1 : ajouter des mois à ce jour

from pandas.tseries.offsets import DateOffset

df['date_column'] + DateOffset(months=3)

Méthode 2 : soustraire les mois de la date

from pandas.tseries.offsets import DateOffset

df['date_column'] - DateOffset(months=3)

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'date': pd.date_range(start='1/5/2022', freq='M', periods=10),
                   'sales': [6, 8, 9, 5, 4, 8, 8, 3, 5, 9]})

#view DataFrame
print(df)

        date  sales
0 2022-01-31      6
1 2022-02-28      8
2 2022-03-31      9
3 2022-04-30      5
4 2022-05-31      4
5 2022-06-30      8
6 2022-07-31      8
7 2022-08-31      3
8 2022-09-30      5
9 2022-10-31      9

Exemple 1 : ajouter des mois à ce jour dans Pandas

Le code suivant montre comment créer une nouvelle colonne qui ajoute 3 mois à la valeur de la colonne date :

from pandas.tseries.offsets import DateOffset

#create new column that adds 3 months to date
df['date_plus3'] = df.date + DateOffset(months=3)

#view updated DataFrame
print(df)

        date  sales date_plus3
0 2022-01-31      6 2022-04-30
1 2022-02-28      8 2022-05-28
2 2022-03-31      9 2022-06-30
3 2022-04-30      5 2022-07-30
4 2022-05-31      4 2022-08-31
5 2022-06-30      8 2022-09-30
6 2022-07-31      8 2022-10-31
7 2022-08-31      3 2022-11-30
8 2022-09-30      5 2022-12-30
9 2022-10-31      9 2023-01-31

La nouvelle colonne date_plus3 représente les valeurs de la colonne date avec trois mois ajoutés à chaque valeur.

Exemple 2 : Soustraire les mois de la date dans Pandas

Le code suivant montre comment créer une nouvelle colonne qui soustrait 3 mois à la valeur de la colonne date :

from pandas.tseries.offsets import DateOffset

#create new column that subtracts 3 months from date
df['date_minus3'] = df.date + DateOffset(months=3)

#view updated DataFrame
print(df)

        date  sales date_minus3
0 2022-01-31      6  2021-10-31
1 2022-02-28      8  2021-11-28
2 2022-03-31      9  2021-12-31
3 2022-04-30      5  2022-01-30
4 2022-05-31      4  2022-02-28
5 2022-06-30      8  2022-03-30
6 2022-07-31      8  2022-04-30
7 2022-08-31      3  2022-05-31
8 2022-09-30      5  2022-06-30
9 2022-10-31      9  2022-07-31

La nouvelle colonne date_minus3 représente les valeurs de la colonne date avec trois mois soustraits de chaque valeur.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment convertir des colonnes en DateTime dans Pandas
Comment convertir DateHeure en date dans Pandas
Comment extraire le mois de la date dans Pandas

Ajouter un commentaire

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