Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Komplettera if-satsen så att den är sann endast när en resa har ett start-värde som kommer efter dess end-värde.
  • När start är efter end, anropa tz.enfold()end så 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)))
Redigera och kör kod