ПочатиПочніть безкоштовно

Очищення даних про перехід на літній час за допомогою fold

Щойно ми з'ясували, що одна з поїздок у нашому наборі даних спотворена через перехід на літній час. Давайте почистимо набір даних, щоб отримати коректну мінімальну тривалість поїздки. Ми можемо скористатися тим, що знаємо: поїздка закінчилася після початку, — і виправити тривалість, зіпсовану виходом із літнього часу.

Оскільки Python не враховує tz.enfold() під час обчислень, потрібно перевести наші об'єкти datetime в UTC, де неоднозначності вже знято.

onebike_datetimes уже завантажено й воно в правильному часовому поясі. tz і timezone імпортовано. Використайте tz.UTC як часовий пояс.

Ця вправа є частиною курсу

Робота з датами та часом у Python

Переглянути курс

Інструкції до вправи

  • Доповніть оператор if, щоб він був істинним лише тоді, коли start поїздки настає пізніше за її end.
  • Коли start пізніше за end, викличте tz.enfold() для end, щоб указати, що йдеться про момент після зміни літнього часу.
  • Після оператора if перетворіть start і end у 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)))
Редагувати та запускати код