MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Lengkapi pernyataan if agar bernilai benar hanya ketika start suatu perjalanan terjadi setelah end-nya.
  • Ketika start setelah end, panggil tz.enfold() pada end agar Anda tahu bahwa itu mengacu pada yang terjadi setelah perubahan waktu daylight saving.
  • Setelah pernyataan if, ubah start dan end ke 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)))
Edit dan Jalankan Kode