Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich den Zeitunterschied in Stunden und Minuten zwischen zwei Pandas-DataFrame-Spalten effizient berechnen?

Wie kann ich den Zeitunterschied in Stunden und Minuten zwischen zwei Pandas-DataFrame-Spalten effizient berechnen?

DDD
DDDOriginal
2024-12-01 07:37:10569Durchsuche

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

Berechnen Sie den Zeitunterschied zwischen zwei Pandas-Spalten in Stunden und Minuten

Das Bestimmen des Zeitunterschieds zwischen zwei Datumsspalten in einem DataFrame kann nützlich sein für verschiedene Anwendungen. Der Standardansatz mit dem Subtraktionsoperator führt jedoch zu einem datetime.timedelta-Objekt, das Tage enthält. Um dies in Stunden und Minuten umzuwandeln, können wir die Methode as_type nutzen.

Angenommen, wir haben zwei Spalten in unserem DataFrame, fromdate und todate, die jeweils die Start- und Endzeiten darstellen. Mit dem Subtraktionsoperator erhalten wir den Zeitunterschied wie folgt:

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']

Dies gibt uns die folgende Ausgabe, die Tage umfasst:

                    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

Um den Zeitunterschied nur in Stunden umzuwandeln und Minuten können wir die Methode as_type verwenden, um das Objekt datetime.timedelta in ein zu konvertieren timedelta64 Objekt mit einer bestimmten Maßeinheit:

df['diff_hours'] = df['diff'].astype('timedelta64[h]')

Dies gibt uns die Ausgabe:

                    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

Wie Sie sehen können, sind die diff_hoursSpalte enthält jetzt den Zeitunterschied zwischen den beiden Daten in Stunden.

Das obige ist der detaillierte Inhalt vonWie kann ich den Zeitunterschied in Stunden und Minuten zwischen zwei Pandas-DataFrame-Spalten effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn