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
Instrucțiuni pentru exercițiu
- Completează instrucțiunea
ifastfel încât să fie adevărată doar cândstart-ul unei călătorii este ulteriorend-ului său. - Când
starteste dupăend, apeleazătz.enfold()peend, astfel încât să știi că se referă la cel de după schimbarea orei de vară. - După instrucțiunea
if, converteștestartșiendî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)))