Nettoyage des données relatives à l'heure d'été avec le pli
Comme nous venons de le découvrir, un trajet dans notre ensemble de données est perturbé par le passage à l'heure d'été. Nettoyons l'ensemble des données afin d'obtenir une longueur de parcours minimale correcte. Nous pouvons utiliser le fait que nous savons que la fin du trajet s'est déroulée après le début pour corriger la durée perturbée par le passage à l'heure d'été.
Comme Python ne gère pas tz.enfold()
lors de l'exécution d'opérations arithmétiques, nous devons placer nos objets datetime dans UTC, où les ambiguïtés ont été résolues.
onebike_datetimes
est déjà chargé et se trouve dans le bon fuseau horaire. tz
et timezone
ont été importés. Utilisez tz.UTC
pour le fuseau horaire.
Cet exercice fait partie du cours
Travailler avec des dates et des heures en Python
Instructions
- Complétez l'affirmation
if
pour qu'elle soit vraie uniquement lorsque l'adressestart
d'une attraction vient après son adresseend
. - Lorsque
start
se trouve aprèsend
, appeleztz.enfold()
surend
afin de savoir qu'il s'agit de la date qui suit le changement d'heure d'été. - Après la déclaration
if
, convertissez le début et la fin en UTC afin de pouvoir effectuer une comparaison correcte.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)))