Limpieza de datos de horario de verano con fold
Como acabamos de descubrir, hay un recorrido en nuestro conjunto de datos que se ve afectado por el cambio al horario de verano. Limpiemos el conjunto de datos para que tengamos una duración mínima correcta del trayecto. Podemos aprovechar el hecho de que sabemos que el final del trayecto tuvo lugar después del inicio para corregir la duración alterada por el cambio horario.
Dado que Python no gestiona la ambigüedad de hora ( tz.enfold() ) al realizar operaciones aritméticas, debemos convertir nuestros objetos de fecha y hora a UTC, donde se han resuelto las ambigüedades.
onebike_datetimes Ya está cargado y en la zona horaria correcta. Se han importado tz y timezone. Utiliza tz.UTC para la zona horaria.
Este ejercicio forma parte del curso
Trabajar con fechas y horas en Python
Instrucciones del ejercicio
- Completa la expresión «
if» para que sea verdadera solo cuando el «start» de un viaje venga después de su «end». - Cuando
startaparece después deend, llama atz.enfold()enendpara saber que se refiere al que aparece después del cambio de horario de verano. - Después de la instrucción «
if», convierte el inicio y el final a UTC para poder realizar una comparación adecuada.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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)))