Pandas: wie berechnet man die differenz zwischen zwei zeiten?


Sie können die folgende Syntax verwenden, um eine Differenz zwischen zwei Zeiten in einem Pandas-DataFrame zu berechnen:

 #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 )

In diesem speziellen Beispiel wird die Differenz zwischen den Zeiten in den Spalten end_time und start_time einiger Pandas DataFrame berechnet.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Berechnung der Differenz zwischen zwei Zeiten in Pandas

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
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

Mit der folgenden Syntax können wir den Zeitunterschied zwischen den Spalten start_time und end_time in Stunden, Minuten und Sekunden berechnen:

 #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

Die neuen Spalten enthalten die Zeitunterschiede zwischen den Spalten start_time und end_time in unterschiedlichen Einheiten.

Betrachten Sie zum Beispiel die erste Zeile:

  • Der Unterschied zwischen der Startzeit und der Endzeit beträgt 24 Stunden .
  • Der Unterschied zwischen der Startzeit und der Endzeit beträgt 1440 Minuten .
  • Die Differenz zwischen Startzeit und Endzeit beträgt 86.400 Sekunden .

Beachten Sie, dass in diesem Beispiel die Spalten start_time und end_time bereits als datetime formatiert sind.

Wenn Ihre Zeitspalten derzeit als Zeichenfolgen formatiert sind, können Sie pd.to_datetime verwenden, um zunächst jede Spalte in das Datetime-Format zu konvertieren, bevor Sie die Differenz zwischen den Zeiten berechnen:

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

Anschließend können Sie mit der Berechnung der Zeitunterschiede zwischen den Spalten fortfahren, da diese nun beide in einem Datums-/Uhrzeitformat vorliegen, das Pandas erkennen können.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So erstellen Sie einen Datumsbereich in Pandas
So extrahieren Sie den Monat aus dem Datum in Pandas
So konvertieren Sie den Zeitstempel in Pandas in Datum/Uhrzeit

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert