НачатьНачать бесплатно

Очистка данных с переходом на зимнее время с помощью fold

Как мы только что выяснили, в нашем наборе данных есть поездка, данные которой искажены из-за перехода на зимнее время. Очистим набор данных, чтобы получить корректную минимальную продолжительность поездки. Мы знаем, что конец поездки произошёл позже её начала, — воспользуемся этим, чтобы исправить длительность, нарушенную переходом с летнего времени.

Поскольку Python не учитывает tz.enfold() при арифметических операциях, необходимо перевести объекты datetime в UTC, где неоднозначности уже устранены.

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

Это упражнение является частью курса

Работа с датами и временем в Python

Посмотреть курс

Инструкции к упражнению

  • Дополните условие if так, чтобы оно было истинным только тогда, когда start поездки наступает позже её end.
  • Когда start позже end, примените tz.enfold() к end, чтобы указать, что это время относится к периоду после перехода с летнего на зимнее время.
  • После блока 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)))
Редактировать и запускать код