fold로 서머타임 데이터 정제하기
방금 확인했듯이, 데이터셋에 서머타임 전환 때문에 이상해진 주행이 하나 있습니다. 최소 주행 시간을 올바르게 계산할 수 있도록 데이터를 정제해 보겠습니다. 주행의 종료가 시작 이후에 일어났다는 사실을 이용해, 서머타임 해제 전환으로 인해 엉킨 지속 시간을 바로잡을 수 있습니다.
Python은 산술 연산 시 tz.enfold()를 처리하지 못하므로, 모호성이 해소된 UTC로 datetime 객체를 변환해야 합니다.
onebike_datetimes는 이미 로드되어 있고 올바른 시간대에 있습니다. tz와 timezone은 임포트되어 있습니다. 시간대에는 tz.UTC를 사용하세요.
이 연습은 강의의 일부입니다
Python에서 날짜와 시간 다루기
연습 안내
if문을 주행의start가end이후일 때만 참이 되도록 완성하세요.start가end이후라면,end에 대해tz.enfold()를 호출해 서머타임 변경 이후의 시점을 가리키도록 하세요.if문 이후에는 적절히 비교할 수 있도록 시작과 종료 시간을 UTC로 변환하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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)))