CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Complétez l'affirmation if pour qu'elle soit vraie uniquement lorsque l'adresse start d'une attraction vient après son adresse end.
  • Lorsque start se trouve après end, appelez tz.enfold() sur end 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)))
Modifier et exécuter le code