Comment comparer les dates chez les pandas : avec des exemples
Vous pouvez utiliser les méthodes suivantes pour comparer les dates entre deux colonnes dans un DataFrame pandas :
Méthode 1 : ajouter une nouvelle colonne au DataFrame qui affiche la comparaison des dates
df['met_due_date'] = df['comp_date'] < df['due_date']
Cet exemple particulier ajoute une nouvelle colonne appelée met_due_date qui renvoie True ou False selon que la date dans la colonne comp_date est antérieure à la date dans la colonne due_date .
Méthode 2 : filtrer le DataFrame en fonction de la comparaison des dates
df_met_due_date = df[df['comp_date'] < df['due_date']]
Cet exemple particulier filtre le DataFrame pour conserver uniquement les lignes dont la date dans la colonne comp_date est antérieure à la date dans la colonne due_date .
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'task': ['A', 'B', 'C', 'D'], 'due_date': ['4-15-2022', '5-19-2022', '6-14-2022', '10-24-2022'], 'comp_date': ['4-14-2022', '5-23-2022', '6-24-2022', '10-7-2022']}) #convert due_date and comp_date columns to datetime format df[['due_date', 'comp_date']] = df[['due_date', 'comp_date']].apply(pd.to_datetime) #view DataFrame print(df) task due_date comp_date 0 A 2022-04-15 2022-04-14 1 B 2022-05-19 2022-05-23 2 C 2022-06-14 2022-06-24 3 D 2022-10-24 2022-10-07
Exemple 1 : ajouter une nouvelle colonne au DataFrame qui affiche la comparaison des dates
Le code suivant montre comment ajouter une nouvelle colonne appelée met_due_date qui renvoie True ou False selon que la date dans la colonne comp_date est antérieure à la date dans la colonne due_date .
import pandas as pd #create new column that shows if completion date is before due date df['met_due_date'] = df['comp_date'] < df['due_date'] #view updated DataFrame print(df) task due_date comp_date met_due_date 0 A 2022-04-15 2022-04-14 True 1 B 2022-05-19 2022-05-23 False 2 C 2022-06-14 2022-06-24 False 3 D 2022-10-24 2022-10-07 True
Pour chaque ligne du DataFrame, la nouvelle colonne met_due_date indique si la date de la colonne comp_date est antérieure à la date de la colonne due_date .
Par exemple, nous pouvons voir que la tâche A avait une date d’échéance du 15/04/2022 et une date d’achèvement du 14/04/2022.
Puisque la date d’achèvement était antérieure à la date d’échéance, la valeur de la colonne met_due_date est True.
Exemple 2 : filtrer le DataFrame en fonction de la comparaison des dates
Le code suivant montre comment filtrer le DataFrame pour qu’il contienne uniquement les lignes dont la date dans la colonne comp_date est antérieure à la date dans la colonne due_date .
import pandas as pd #filter for rows where completion date is before due date df_met_due_date = df[df['comp_date'] < df['due_date']] #view results print(df_met_due_date) task due_date comp_date 0 A 2022-04-15 2022-04-14 3 D 2022-10-24 2022-10-07
Le nouveau DataFrame a été filtré pour contenir uniquement les lignes dont la date dans la colonne comp_date est antérieure à la date dans la colonne due_date .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment créer une plage de dates dans Pandas
Comment convertir l’horodatage en date/heure dans Pandas
Comment calculer une différence entre deux dates chez les pandas