ÎncepețiÎncepe gratuit

Curățarea datelor privind ora de vară folosind fold

Tocmai am descoperit că există o călătorie în setul nostru de date care este afectată de o tranziție la ora de vară. Să curățăm setul de date pentru a obține durata minimă corectă a unei călătorii. Putem folosi faptul că știm că sfârșitul călătoriei a avut loc după început pentru a corecta durata afectată de trecerea la ora standard.

Deoarece Python nu gestionează tz.enfold() în operațiile aritmetice, trebuie să convertim obiectele datetime în UTC, unde ambiguitățile au fost rezolvate.

onebike_datetimes este deja încărcat și setat în fusul orar corect. tz și timezone au fost importate. Folosește tz.UTC pentru fus orar.

Acest exercițiu face parte din cursul

Lucrul cu date și ore în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează instrucțiunea if astfel încât să fie adevărată doar când start-ul unei călătorii este ulterior end-ului său.
  • Când start este după end, apelează tz.enfold() pe end, astfel încât să știi că se referă la cel de după schimbarea orei de vară.
  • După instrucțiunea if, convertește start și end în UTC pentru a putea face o comparație corectă.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)))
Editează și rulează codul