Začněte nyníZačněte zdarma

Oprava dat při přechodu ze zimního času pomocí fold

Jak jsme právě zjistili, v naší datové sadě se nachází jízda, kterou narušil přechod ze středoevropského letního času. Pojďme data opravit, abychom získali správnou minimální délku jízdy. Využijeme toho, že víme, že konec jízdy nastal vždy po jejím začátku – a tím napravíme délku zkreslenou přechodem ze letního času.

Protože Python nepracuje s tz.enfold() při aritmetických operacích, musíme naše objekty datetime převést do UTC, kde jsou veškeré nejednoznačnosti vyřešeny.

onebike_datetimes je již načteno a nastaveno na správné časové pásmo. tz a timezone jsou importovány. Jako časové pásmo použij tz.UTC.

Toto cvičení je součástí kurzu

Práce s daty a časy v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Dopiš podmínku if tak, aby byla pravdivá pouze tehdy, když start jízdy nastane po jejím end.
  • Pokud start nastane po end, zavolej tz.enfold() na end, aby bylo jasné, že jde o čas po přechodu ze letního času.
  • Po bloku if převeď začátek i konec do UTC, aby bylo možné je správně porovnat.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)))
Upravit a spustit kód