Как изменить часовой пояс столбца фрейма данных pandas в PythonPython

Программы на Python
Ответить
Anonymous
 Как изменить часовой пояс столбца фрейма данных pandas в Python

Сообщение Anonymous »

У меня есть следующий код, создающий таблицу рабочих дней на Нью-Йоркской фондовой бирже за последние 5 лет:
import pandas as pd
import datetime, pytz
import pandas_market_calendars as mcal

today_date = datetime.datetime.now(tz=pytz.timezone('US/Eastern'))
print(today_date)

start_date = datetime.date(today_date.year - 5, today_date.month, today_date.day)
print(start_date)

nyse_calender = mcal.get_calendar('NYSE')
print(nyse_calender.tz.zone)
nyse_business_days = nyse_calender.schedule(start_date=start_date,
end_date=today_date)

nyse_business_days

И вот результат:
market_open market_close
2017-01-18 2017-01-18 14:30:00+00:00 2017-01-18 21:00:00+00:00
2017-01-19 2017-01-19 14:30:00+00:00 2017-01-19 21:00:00+00:00
2017-01-20 2017-01-20 14:30:00+00:00 2017-01-20 21:00:00+00:00
2017-01-23 2017-01-23 14:30:00+00:00 2017-01-23 21:00:00+00:00
2017-01-24 2017-01-24 14:30:00+00:00 2017-01-24 21:00:00+00:00
... ... ...
2022-01-11 2022-01-11 14:30:00+00:00 2022-01-11 21:00:00+00:00
2022-01-12 2022-01-12 14:30:00+00:00 2022-01-12 21:00:00+00:00
2022-01-13 2022-01-13 14:30:00+00:00 2022-01-13 21:00:00+00:00
2022-01-14 2022-01-14 14:30:00+00:00 2022-01-14 21:00:00+00:00
2022-01-18 2022-01-18 14:30:00+00:00 2022-01-18 21:00:00+00:00

1260 rows × 2 columns

На самом деле я ожидаю увидеть время в восточном часовом поясе США, но это не так.
Например, market_open в первой строке должно быть 2017-01-18 09:30:00+00:00, но отображается 2017-01-18 14:30: 00+00:00.
Что мне следует сделать, чтобы получить часовые пояса в обоих столбцах в американском/восточном формате? Он показывает часовые пояса в формате UTC, но это не то, что мне нужно.

ДОПОЛНЕНИЕ:
Я попробовал следующее, основываясь на по комментарию @IanKenney:
nyse_business_days["market_open"] = nyse_business_days["market_open"].tz_localize(pytz.utc).tz_convert(pytz.timezone('US/Eastern'))

И когда я его распечатываю, вот что я получаю:
market_open market_close
2017-01-18 NaT 2017-01-18 21:00:00+00:00
2017-01-19 NaT 2017-01-19 21:00:00+00:00
2017-01-20 NaT 2017-01-20 21:00:00+00:00
2017-01-23 NaT 2017-01-23 21:00:00+00:00
2017-01-24 NaT 2017-01-24 21:00:00+00:00
... ... ...
2022-01-11 NaT 2022-01-11 21:00:00+00:00
2022-01-12 NaT 2022-01-12 21:00:00+00:00
2022-01-13 NaT 2022-01-13 21:00:00+00:00
2022-01-14 NaT 2022-01-14 21:00:00+00:00
2022-01-18 NaT 2022-01-18 21:00:00+00:00

1260 rows × 2 columns


Подробнее здесь: https://stackoverflow.com/questions/707 ... nin-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»