Aan de slagGa gratis aan de slag

Zomertijdgegevens opschonen met fold

Zoals we net hebben ontdekt, zit er in onze gegevensset een rit die in de war raakt door een overgang naar/van zomertijd. Laten we de gegevensset opschonen zodat we een correcte minimale ritduur hebben. We kunnen gebruiken dat we weten dat het einde van de rit na het begin plaatsvond om de duur te corrigeren die is verstoord door het einde van de zomertijd.

Omdat Python tz.enfold() niet verwerkt bij rekenkundige bewerkingen, moeten we onze datetime-objecten omzetten naar UTC, waar dubbelzinnigheden zijn opgelost.

onebike_datetimes is al geladen en in de juiste tijdzone. tz en timezone zijn geïmporteerd. Gebruik tz.UTC voor de tijdzone.

Deze oefening maakt deel uit van de cursus

Werken met datums en tijden in Python

Cursus bekijken

Oefeninstructies

  • Maak de if-verklaring zo af dat die alleen waar is wanneer de start van een rit na het end ligt.
  • Als start na end is, roep dan tz.enfold() aan op end zodat je weet dat dit verwijst naar het tijdstip ná de verandering door de zomertijd.
  • Zet na de if-verklaring start en end om naar UTC zodat je een juiste vergelijking kunt maken.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)))
Code bewerken en uitvoeren