Limpar dados de horário de verão com fold
Como acabamos de descobrir, tem uma viagem no nosso conjunto de dados que tá sendo afetada pela mudança do horário de verão. Vamos limpar o conjunto de dados para que tenhamos realmente uma duração mínima correta da viagem. A gente pode usar o fato de saber que o fim da viagem rolou depois do começo pra consertar a duração que ficou toda bagunçada por causa da mudança do horário de verão.
Como o Python não lida com a ambiguidade de data e hora ( tz.enfold() ) ao fazer cálculos aritméticos, precisamos colocar nossos objetos de data e hora no formato UTC, onde as ambiguidades já foram resolvidas.
onebike_datetimes Já está carregado e no fuso horário certo. tz e timezone foram importados. Use tz.UTC para o fuso horário.
Este exercício faz parte do curso
Trabalhando com datas e horas em Python
Instruções do exercício
- Complete a instrução `
ifpara que seja verdadeira apenas quando ostart` de um passeio vier depois do seu ` `end``. - Quando
startvem depois deend, ligue paratz.enfold()no númeroendpara saber que se refere ao que vem depois da mudança do horário de verão. - Depois da instrução `
if`, converta o início e o fim para UTC para poder fazer uma comparação correta.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)))