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

Ajouter un commentaire

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