Выбор ответа Middle Даты и время обновлено
tz_localize против tz_convert
Вопрос
Колонка ts наивная (без пояса), а на самом деле это московское время. Что нужно, чтобы получить время в UTC?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: ts.dt.tzlocalize("Europe/Moscow").dt.tzconvert("UTC"). tzlocalize приписывает пояс наивному времени («эти часы были по Москве»), tzconvert пересчитывает в другой пояс. tzconvert на наивном времени выбросит ошибку. tzlocalize("UTC") объявит московские часы UTC-шными и сдвинет все события на 3…
Варианты ответа
ts.dt.tz_convert("UTC")сразу, без других шаговts.dt.tz_localize("UTC").dt.tz_convert("Europe/Moscow")ts.dt.tz_localize("Europe/Moscow").dt.tz_convert("UTC")правильный ответts - pd.Timedelta(hours=3)и больше ничего не делать
Разбор
tz_localize приписывает пояс наивному времени («эти часы были по Москве»), tz_convert пересчитывает в другой пояс. tz_convert на наивном времени выбросит ошибку. tz_localize("UTC") объявит московские часы UTC-шными и сдвинет все события на 3 часа. Ручной вычет 3 часов даст правильные числа, но колонка останется наивной, и на датах со сменой смещения такой код ломается.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.