#python #pandas #time #timezone
Вопрос:
Поэтому у меня есть задача, чтобы прочитать CSV-файл и преобразовать столбец времен-письма отправляются в новый часовой пояс (от мирового до Тихого океана) я чувствую, что я пробовал все, мой текущий код, где ошибка df_emails = df_emails.EmailSentDateTimeUtc.dt.tz_localize('US/Eastern', ambiguous='infer')
Я попытался с неоднозначное значение true, а также поднять, «EmailSentDateTimeUtc» столбец был преобразован в datetime64[НС] я пытаюсь локализовать в Восточную, а затем преобразовать до Тихого океана.
ошибка, возникающая из этого кода, заключается в AmbiguousTimeError: 2018-11-04 01:58:16.743000
медленно сходя с ума здесь, я очень ценю любую помощь!
Ответ №1:
Если вы читаете данные даты/времени в формате UTC, вам следует указать это при импорте / при преобразовании из строки в тип данных datetime. Тогда переход в другой часовой пояс не вызовет никаких ошибок.
экс:
import pandas as pd
df_emails = pd.DataFrame({"EmailSentDateTimeUtc": ["2018-11-04 01:58:16.743000"]})
# to datetime, and specifiy that input is UTC
df_emails.EmailSentDateTimeUtc = pd.to_datetime(df_emails.EmailSentDateTimeUtc, utc=True)
# now you can convert easily like
df_emails.EmailSentDateTimeUtc = df_emails.EmailSentDateTimeUtc.dt.tz_convert('US/Eastern')
# df_emails
# EmailSentDateTimeUtc
# 0 2018-11-03 21:58:16.743000-04:00
Комментарии:
1. Большое вам спасибо! Теперь все работает отлично, я так благодарен вам за ваш ответ!