Membersihkan data daylight saving dengan fold
Seperti yang baru saja Anda temukan, ada satu perjalanan dalam himpunan data kita yang bermasalah akibat pergeseran Daylight Saving. Mari kita bersihkan himpunan data tersebut agar kita benar-benar memiliki durasi perjalanan minimum yang benar. Kita dapat memanfaatkan fakta bahwa kita tahu akhir perjalanan terjadi setelah awalnya untuk memperbaiki durasi yang keliru akibat pergeseran keluar dari Daylight Saving.
Karena Python tidak menangani tz.enfold() saat melakukan aritmetika, kita harus mengubah objek datetime kita ke UTC, di mana ambiguitas telah diselesaikan.
onebike_datetimes sudah dimuat dan berada di zona waktu yang benar. tz dan timezone sudah diimpor. Gunakan tz.UTC untuk zona waktunya.
Latihan ini adalah bagian dari kursus
Bekerja dengan Tanggal dan Waktu di Python
Petunjuk latihan
- Lengkapi pernyataan
ifagar bernilai benar hanya ketikastartsuatu perjalanan terjadi setelahend-nya. - Ketika
startsetelahend, panggiltz.enfold()padaendagar Anda tahu bahwa itu mengacu pada yang terjadi setelah perubahan waktu daylight saving. - Setelah pernyataan
if, ubahstartdanendke UTC sehingga Anda dapat melakukan perbandingan yang benar.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)))