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