Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Pandas : comment calculer une différence entre deux temps



Vous pouvez utiliser la syntaxe suivante pour calculer une différence entre deux heures dans un DataFrame pandas :

#calculate time difference in hours
df['hours_diff'] = (df.end_time - df.start_time) / pd.Timedelta(hours=1)

#calculate time difference in minutes
df['min_diff'] = (df.end_time - df.start_time) / pd.Timedelta(minutes=1)

#calculate time difference in seconds
df['sec_diff'] = (df.end_time - df.start_time) / pd.Timedelta(seconds=1)

Cet exemple particulier calcule la différence entre les heures dans les colonnes end_time et start_time de certains pandas DataFrame.

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

Exemple : calculer la différence entre deux fois chez les pandas

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df=pd.DataFrame({'start_time':pd.date_range(start='5/25/2020',periods=6,freq='15min'),
                 'end_time':pd.date_range(start='5/26/2020',periods=6,freq='30min')})

#view DataFrame
print(df)

           start_time            end_time
0 2020-05-25 00:00:00 2020-05-26 00:00:00
1 2020-05-25 00:15:00 2020-05-26 00:30:00
2 2020-05-25 00:30:00 2020-05-26 01:00:00
3 2020-05-25 00:45:00 2020-05-26 01:30:00
4 2020-05-25 01:00:00 2020-05-26 02:00:00
5 2020-05-25 01:15:00 2020-05-26 02:30:00

Nous pouvons utiliser la syntaxe suivante pour calculer la différence de temps entre les colonnes start_time et end_time en termes d’heures, de minutes et de secondes :

#calculate time difference in hours
df['hours_diff'] = (df.end_time - df.start_time) / pd.Timedelta(hours=1)

#calculate time difference in minutes
df['min_diff'] = (df.end_time - df.start_time) / pd.Timedelta(minutes=1)

#calculate time difference in seconds
df['sec_diff'] = (df.end_time - df.start_time) / pd.Timedelta(seconds=1)

#view updated DataFrame
print(df)

           start_time            end_time  hours_diff  min_diff  sec_diff
0 2020-05-25 00:00:00 2020-05-26 00:00:00       24.00    1440.0   86400.0
1 2020-05-25 00:15:00 2020-05-26 00:30:00       24.25    1455.0   87300.0
2 2020-05-25 00:30:00 2020-05-26 01:00:00       24.50    1470.0   88200.0
3 2020-05-25 00:45:00 2020-05-26 01:30:00       24.75    1485.0   89100.0
4 2020-05-25 01:00:00 2020-05-26 02:00:00       25.00    1500.0   90000.0
5 2020-05-25 01:15:00 2020-05-26 02:30:00       25.25    1515.0   90900.0

Les nouvelles colonnes contiennent les différences de temps entre les colonnes start_time et end_time dans différentes unités.

Par exemple, considérons la première ligne :

  • La différence entre l’heure de début et l’heure de fin est de 24 heures .
  • La différence entre l’heure de début et l’heure de fin est de 1 440 minutes .
  • La différence entre l’heure de début et l’heure de fin est de 86 400 secondes .

Notez que dans cet exemple, les colonnes start_time et end_time sont déjà formatées en datetime.

Si vos colonnes d’heure sont actuellement formatées sous forme de chaînes, vous pouvez utiliser pd.to_datetime pour convertir d’abord chaque colonne au format datetime avant de calculer la différence entre les heures :

#convert columns to datetime format
df[['start_time', 'end_time']] = df[['start_time', 'end_time]].apply(pd.to_datetime)

Vous pouvez ensuite procéder au calcul des différences horaires entre les colonnes puisqu’elles sont désormais toutes deux dans un format datetime que les pandas peuvent reconnaître.

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 extraire le mois de la date dans Pandas
Comment convertir l’horodatage en date/heure dans Pandas

Ajouter un commentaire

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