Python 3 - pd.to_datetime не распознает часовой пояс - PullRequest
0 голосов
/ 12 октября 2018

У меня есть следующий столбец даты и времени, в котором указывается часовой пояс для Pacific / Auckland:

startTime = ['2018-10-10 23:00:00+1300'
     , '2018-10-11 04:00:00+1300'
     , '2018-10-10 17:30:00+1300'
     , '2018-10-10 17:30:00+1300'
     , '2018-10-11 04:00:00+1300'
     , '2018-10-10 19:00:00+1300']

Когда я применяю pd.to_datetime к столбцу, времена не преобразуются соответствующим образом.

Я получаю это:

pd.to_datetime(startTime)

DatetimeIndex(['2018-10-10 10:00:00'
             , '2018-10-10 15:00:00'
             , '2018-10-10 04:30:00'
             , '2018-10-10 04:30:00'
             , '2018-10-10 15:00:00'
             , '2018-10-10 06:00:00']
             , dtype='datetime64[ns]'
             , freq=None)

И я ожидаю, что будет добавлено +13 часов к не вычтенным, что даст мне возможность указать местное время в Окленде, НЗ:

DatetimeIndex(['2018-10-11 12:00:00'
             , '2018-10-11 17:00:00'
             , ‘2018-10-11 06:30:00'
             , ‘2018-10-11 06:30:00'
             , ‘2018-10-11 17:00:00'
             , ‘2018-10-11 08:00:00']
             , dtype='datetime64[ns]'
             , freq=None)

Можеткто-то, пожалуйста, помогите мне понять, почему pd.to_datetime вычитает 13 часов вместо добавления?

1 Ответ

0 голосов
/ 12 октября 2018

Эта проблема была ранее поднята в разработке Pandas и отслеживается в # 13712 .

. На данный момент одним из обходных путей является преобразование вашего часового пояса.строки к pd.Timestamp, который правильно выводит часовой пояс и затем применяет pd.to_datetime.

from pandas import Timestamp
converted = [Timestamp(t) for t in startTime]
pd.to_datetime(converted)

, который дает:

DatetimeIndex(['2018-10-10 23:00:00+13:00', '2018-10-11 04:00:00+13:00',
               '2018-10-10 17:30:00+13:00', '2018-10-10 17:30:00+13:00',
               '2018-10-11 04:00:00+13:00', '2018-10-10 19:00:00+13:00'],
              dtype='datetime64[ns, pytz.FixedOffset(780)]', freq=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...