Rensa sommartidsdata med fold
Som vi nyss upptäckte finns det en resa i vår datamängd som påverkas felaktigt av ett sommartidsskifte. Nu ska vi rensa datamängden så att vi får en korrekt minsta reselängd. Vi kan använda det faktum att vi vet att resan slutade efter att den började för att rätta till den felaktiga varaktigheten som orsakades av övergången ur sommartid.
Eftersom Python inte hanterar tz.enfold() vid aritmetiska operationer måste vi konvertera våra datetime-objekt till UTC, där tvetydigheter redan är lösta.
onebike_datetimes är redan inläst och har rätt tidszon. tz och timezone har importerats. Använd tz.UTC för tidszonen.
Den här övningen är en del av kursen
Arbeta med datum och tider i Python
Övningsinstruktioner
- Komplettera
if-satsen så att den är sann endast när en resa har ettstart-värde som kommer efter dessend-värde. - När
startär efterend, anropatz.enfold()påendså att du vet att det avser tidpunkten efter sommartidsskiftet. - Efter
if-satsen, konvertera start och slut till UTC så att du kan göra en korrekt jämförelse.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)))