Säuberung der Sommerzeitdaten mit „fold“
Wie wir gerade rausgefunden haben, gibt's in unserem Datensatz eine Fahrt, die durch die Umstellung auf Sommerzeit durcheinandergebracht wird. Lass uns den Datensatz aufräumen, damit wir eine korrekte Mindestfahrstrecke haben. Wir können die Tatsache nutzen, dass wir wissen, dass das Ende der Fahrt nach dem Start war, um die durch die Umstellung auf Sommerzeit durcheinandergebrachte Dauer zu korrigieren.
Da Python bei der Arithmetik nicht mit „ tz.enfold() “ (Zeitzonenabhängige Datums-/Zeitangaben) umgehen kann, müssen wir unsere Datums-/Zeitobjekte in UTC umwandeln, wo Mehrdeutigkeiten beseitigt wurden.
onebike_datetimes ist schon geladen und in der richtigen Zeitzone. tz und timezone wurden importiert. Benutze tz.UTC für die Zeitzone.
Diese Übung ist Teil des Kurses
Arbeiten mit Datums- und Zeitangaben in Python
Anleitung zur Übung
- Vervollständige die Aussage „
if“, sodass sie nur dann stimmt, wenn die „start“ einer Fahrt nach der „end“ kommt. - Wenn
startnachendkommt, schau mal beitz.enfold()aufendrein, damit du weißt, dass es sich um das Datum nach der Zeitumstellung handelt. - Nach der Anweisung „
if“ musst du den Start- und Endzeitpunkt in UTC umrechnen, damit du richtig vergleichen kannst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
trip_durations = []
for trip in onebike_datetimes:
# When the start is later than the end, set the fold to be 1
if ____ > ____:
trip['end'] = tz.____(trip['end'])
# Convert to UTC
start = trip['start'].____
end = trip['end'].____
# Subtract the difference
trip_length_seconds = (end-start).total_seconds()
trip_durations.append(trip_length_seconds)
# Take the shortest trip duration
print("Shortest trip: " + str(min(trip_durations)))