Pandy: jak obliczyć różnicę między dwoma czasami


Możesz użyć następującej składni, aby obliczyć różnicę między dwoma czasami w ramce DataFrame pandy:

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

Ten konkretny przykład oblicza różnicę między czasami w kolumnach end_time i start_time niektórych Pandas DataFrame.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: obliczanie różnicy między dwoma czasami w pandach

Załóżmy, że mamy następującą ramkę DataFrame pand:

 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

Możemy użyć następującej składni, aby obliczyć różnicę czasu między kolumnami start_time i end_time w postaci godzin, minut i sekund:

 #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

Nowe kolumny zawierają różnice czasowe pomiędzy kolumnami start_time i end_time w różnych jednostkach.

Rozważmy na przykład pierwszą linię:

  • Różnica pomiędzy czasem rozpoczęcia i zakończenia wynosi 24 godziny .
  • Różnica pomiędzy czasem rozpoczęcia i zakończenia wynosi 1440 minut .
  • Różnica między czasem rozpoczęcia i czasem zakończenia wynosi 86 400 sekund .

Należy zauważyć, że w tym przykładzie kolumny czas_początkowy i czas_końcowy są już sformatowane jako data/godzina.

Jeśli kolumny czasu są obecnie sformatowane jako ciągi znaków, możesz użyć pd.to_datetime , aby najpierw przekonwertować każdą kolumnę na format datetime przed obliczeniem różnicy między czasami:

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

Następnie możesz przystąpić do obliczania różnic czasowych między kolumnami, ponieważ obie mają teraz format daty i godziny rozpoznawany przez pandy.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Jak utworzyć zakres dat w Pandach
Jak wyodrębnić miesiąc z daty w Pandach
Jak przekonwertować znacznik czasu na datę/godzinę w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *