Maison > développement back-end > Tutoriel Python > Comment puis-je calculer efficacement la différence de temps en heures et en minutes entre deux colonnes Pandas DataFrame ?

Comment puis-je calculer efficacement la différence de temps en heures et en minutes entre deux colonnes Pandas DataFrame ?

DDD
Libérer: 2024-12-01 07:37:10
original
566 Les gens l'ont consulté

How Can I Efficiently Calculate the Time Difference in Hours and Minutes Between Two Pandas DataFrame Columns?

Calculer la différence de temps entre deux colonnes Pandas en heures et minutes

Déterminer la différence de temps entre deux colonnes de date dans un DataFrame peut être utile pour diverses applications. Cependant, l'approche standard utilisant l'opérateur de soustraction aboutit à un objet datetime.timedelta qui inclut les jours. Pour convertir cela en heures et minutes, nous pouvons utiliser la méthode as_type.

Supposons que nous ayons deux colonnes dans notre DataFrame, fromdate et todate, représentant respectivement les heures de début et de fin. En utilisant l'opérateur de soustraction, nous obtenons le décalage horaire comme suit :

import pandas as pd

data = {'todate': [pd.Timestamp('2014-01-24 13:03:12.050000'), pd.Timestamp('2014-01-27 11:57:18.240000'), pd.Timestamp('2014-01-23 10:07:47.660000')],
        'fromdate': [pd.Timestamp('2014-01-26 23:41:21.870000'), pd.Timestamp('2014-01-27 15:38:22.540000'), pd.Timestamp('2014-01-23 18:50:41.420000')]}

df = pd.DataFrame(data)
df['diff'] = df['fromdate'] - df['todate']
Copier après la connexion

Cela nous donne le résultat suivant, qui inclut les jours :

                    todate                 fromdate                    diff
0 2014-01-24 13:03:12.050  2014-01-26 23:41:21.870  2 days 10:38:09.820000
1 2014-01-27 11:57:18.240  2014-01-27 15:38:22.540  0 days 03:41:04.300000
2 2014-01-23 10:07:47.660  2014-01-23 18:50:41.420  0 days 08:42:53.760000
Copier après la connexion

Pour convertir le décalage horaire en heures seulement et minutes, nous pouvons utiliser la méthode as_type pour convertir l'objet datetime.timedelta en un timedelta64 objet avec une unité de mesure spécifique :

df['diff_hours'] = df['diff'].astype('timedelta64[h]')
Copier après la connexion

Cela nous donne le résultat :

                    todate                 fromdate                  diff  diff_hours
0 2014-01-24 13:03:12.050  2014-01-26 23:41:21.870  2 days 10:38:09.820  58
1 2014-01-27 11:57:18.240  2014-01-27 15:38:22.540  0 days 03:41:04.300   3
2 2014-01-23 10:07:47.660  2014-01-23 18:50:41.420  0 days 08:42:53.760   8
Copier après la connexion

Comme vous pouvez le voir, les diff_hours la colonne contient désormais le décalage horaire entre les deux dates en heures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal