Как я могу преобразовать свой столбец даты и времени в пандах в один и тот же часовой пояс - PullRequest
1 голос
/ 27 марта 2019

У меня есть фрейм данных со столбцом DataTime (с часовым поясом в разных форматах).Похоже, что часовой пояс UTC, но я хочу преобразовать столбец в pd.to_datetime, и это не удалось.Это проблема № 1.Поскольку это не помогло, я не могу выполнять какие-либо операции с датой и временем, например группировать столбец по дате / вычислять дни / группировать по часам дня и так далее.Вот мой фрейм данных df_res

    DateTime
    2017-11-02 19:49:28-07:00
    2017-11-27 07:32:22-08:00
    2017-12-27 17:01:15-08:00

ВЫХОД для команды

      df_res["DateTime"] = df_res["DateTime"].dt.tz_convert('America/New_York')

AttributeError: Can only use .dt accessor with datetimelike values

КОГДА я конвертирую в datetime

   df_res['DateTime'] = pd.to_datetime(df_res['DateTime'])

ValueError: Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=True

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

Преобразование столбцов даты и времени в другой панд часовой пояс Преобразование дат DateTimeIndex с учетом часового пояса панд в наивную метку времени, но в определенном часовом поясе

1 Ответ

1 голос
/ 27 марта 2019

Вы можете проверить это:

df = pd.DataFrame({
    'time': [
        '2017-11-02 19:49:28-08:00', 
        '2017-11-27 07:32:22-07:00', 
        '2017-12-27 17:01:15-07:00'
    ]
})

df['time'] = pd.to_datetime(df['time'])

df['time'].apply(lambda x: pd.to_datetime(x).tz_localize('US/Eastern'))
0   2017-11-03 03:49:28-04:00
1   2017-11-27 14:32:22-05:00
2   2017-12-28 00:01:15-05:00
Name: time, dtype: datetime64[ns, US/Eastern]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...