Pandas : Comment calculer le Timedelta en mois



Vous pouvez utiliser la fonction suivante pour calculer un timedelta en mois entre deux colonnes d’un DataFrame pandas :

def month_diff(x, y):
    end = x.dt.to_period('M').view(dtype='int64')
    start = y.dt.to_period('M').view(dtype='int64')
    return end-start

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : Calculer le Timedelta en mois dans Pandas

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'event': ['A', 'B', 'C'],
                   'start_date': ['20210101', '20210201', '20210401'],
                   'end_date': ['20210608', '20210209', '20210801'] })

#convert start date and end date columns to datetime
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])

#view DataFrame
print(df)

  event start_date   end_date
0     A 2021-01-01 2021-06-08
1     B 2021-02-01 2021-02-09
2     C 2021-04-01 2021-08-01

Supposons maintenant que nous souhaitions calculer le timedelta (en mois) entre les colonnes start_date et end_date .

Pour ce faire, nous allons d’abord définir la fonction suivante :

#define function to calculate timedelta in months between two columns
def month_diff(x, y):
    end = x.dt.to_period('M').view(dtype='int64')
    start = y.dt.to_period('M').view(dtype='int64')
    return end-start

Ensuite, nous utiliserons cette fonction pour calculer le timedelta en mois entre les colonnes start_date et end_date :

#calculate month difference between start date and end date columns
df['month_difference'] = month_diff(df.end_date, df.start_date)

#view updated DataFrame
df

    event	start_date	  end_date	month_difference
0	A	2021-01-01	2021-06-08	5
1	B	2021-02-01	2021-02-09	0
2	C	2021-04-01	2021-08-01	4

La colonne Month_difference affiche le delta temporel (en mois) entre les colonnes start_date et end_date .

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 *