Попытка преобразовать столбец в CSV-файле из времени UTC в американское/Тихоокеанское время

#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. Большое вам спасибо! Теперь все работает отлично, я так благодарен вам за ваш ответ!