Panda's: hoe bereken je het verschil tussen twee tijden?


U kunt de volgende syntaxis gebruiken om het verschil tussen twee tijden in een Panda DataFrame te berekenen:

 #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 dit specifieke voorbeeld wordt het verschil berekend tussen de tijden in de kolommen end_time en start_time van sommige Panda’s DataFrame.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: het verschil berekenen tussen twee tijden bij panda’s

Stel dat we de volgende panda’s DataFrame hebben:

 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

We kunnen de volgende syntaxis gebruiken om het tijdsverschil tussen de kolommen start_time en end_time te berekenen in termen van uren, minuten en seconden:

 #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

De nieuwe kolommen bevatten de tijdsverschillen tussen de kolommen start_time en end_time in verschillende eenheden.

Neem bijvoorbeeld de eerste regel:

  • Het verschil tussen de starttijd en de eindtijd bedraagt 24 uur .
  • Het verschil tussen de starttijd en de eindtijd bedraagt 1440 minuten .
  • Het verschil tussen de starttijd en de eindtijd bedraagt 86.400 seconden .

Houd er rekening mee dat in dit voorbeeld de kolommen start_time en end_time al zijn opgemaakt als datetime.

Als uw tijdkolommen momenteel zijn opgemaakt als tekenreeksen, kunt u pd.to_datetime gebruiken om eerst elke kolom naar de datetime-notatie te converteren voordat u het verschil tussen de tijden berekent:

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

Vervolgens kunt u doorgaan met het berekenen van de tijdsverschillen tussen de kolommen, aangezien ze nu allebei een datum-tijdnotatie hebben die panda’s kunnen herkennen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:

Hoe u een datumbereik in Pandas maakt
Hoe maand uit datum te extraheren in Panda’s
Hoe tijdstempel naar datum/tijd in Panda’s te converteren

Einen Kommentar hinzufügen

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