ComenzarEmpieza gratis

Limpieza de datos de horario de verano con fold

Como acabamos de descubrir, hay un trayecto en nuestro conjunto de datos que se está viendo afectado por un cambio horario. Limpiemos el conjunto de datos para que tengamos una duración mínima correcta del trayecto. Podemos utilizar 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 fecha y 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

Ver curso

Instrucciones del ejercicio

  • Completa la frase « if » (El nombre del archivo de la ruta de acceso es correcto) para que sea cierta solo cuando el nombre del archivo « start » (nombre del archivo) de una ruta de acceso « end » (nombre del directorio) aparece después de este último.
  • Cuando « start » (hora de inicio) aparece después de « end » (hora de inicio anterior), llama al « tz.enfold() » (número de inicio anterior) que aparece en el « end » (registro de inicio) para saber que se refiere a la hora posterior al 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 completando 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)))
Editar y ejecutar código