Я пытаюсь преобразовать часовой пояс Серии панд. Я использую для этого пакет pytz, однако получаю значение, которое отключается на несколько минут. Код, который я сейчас использую, можно найти в ответе здесь: Преобразование элементов из серии Pandas в дату / время
В других ответах предлагается использовать функцию localize()
, чтобы сделать эту работу, однако этоне работает в моем коде. Я попытался использовать функцию normalize()
для решения этой проблемы, но я получаю сообщение об ошибке, используя серию панд.
Сообщение об ошибке: AttributeError: у объекта 'Series' нет атрибута 'tzinfo'
Пример ввода:
dfNY = pd.DataFrame({'TimeSeries': [13:00, nan, 06:00, 'Morning', 'Afternoon', nan, nan, 01:30]})
Желаемый вывод:
dfLondon = pd.DataFrame({'TimeSeries': [18:00, nan, 11:00, 'Morning', 'Afternoon', nan, nan, 06:30]})
Текущий код:
import pandas as pd
from pytz import timezone
dfNY = pd.DataFrame({'TimeSeries': [13:00, nan, 06:00, 'Morning', 'Afternoon', nan, nan, 01:30]})
tzDestination = "Europe/London"
dtTimeSeries = pd.to_datetime(dfNY.TimeSeries, errors='coerce', format='%H:%M').dt.tz_localize(tzOrigin)
tzChange = timezone(tzDestination)
convertedTime = tzChange.normalize(dtTimeSeries).dt.strftime('%H:%M')
dyNY = convertedTime.copy()
dfNY = timeSeries.where(~convertedTime.ne('NaT'), convertedTime)
Спасибо за любую помощь