Панды: как обрабатывать смещение часового пояса, используя DatetimeIndex - PullRequest
0 голосов
/ 03 июля 2019

(Not a duplicate question)

В этом вопросе я использую Python3 и Pandas

В моем наборе необработанных данных datetime был в GMT

datetime формат: 2017-01-01 00:00:00

Я преобразовал GMT datetime в EST, выполнив следующее:

df['Gmt time'] = df['Gmt time'].dt.tz_localize('GMT').dt.tz_convert('America/New_York')

Новый datetime теперь выглядит так:

2016-12-31 19:00:00-05:00

сейчас, когда я делаю:

df['Gmt time'] = pd.DatetimeIndex(df['Gmt time'])

Я получаю эту ошибку:

TypeError: [datetime.datetime(2016, 12, 31, 19, 0, tzinfo=tzoffset(None, -18000))

Я попытался исправить это, выполнив следующее:

df['Gmt time'] = pd.DatetimeIndex(df['Gmt time'], tz='EST'), чтобы указать, что datetime находится в EST

Это не работает. Как мне это исправить? Мне нужно, чтобы конец «datetime» был в EST

1 Ответ

2 голосов
/ 03 июля 2019

Попробуйте это, используя pytz, сохраняя ваши данные как Тихоокеанский и конвертируя в восточный, вы можете использовать его и конвертировать из GMT в любой часовой пояс.

import pandas as pd
import pytz
data = ['2017-01-01 00:00:00']
datatf= pd.to_datetime(data)
my_timestamp = dt.datetime.now()
new_timezone = pytz.timezone("US/Pacific")
old_timezone = pytz.timezone("US/Eastern")
my_timestamp_in_new_timezone = old_timezone.localize(datatf[0]).astimezone(new_timezone)
print(my_timestamp_in_new_timezone )
df = pd.DataFrame()
df['Gmt time'] = [my_timestamp_in_new_timezone]
df['Gmt time'] = pd.DatetimeIndex(df['Gmt time'])
print(df)

Результат:

               Gmt time
0 2016-12-31 21:00:00-08:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...