【发布时间】:2020-01-30 17:34:39
【问题描述】:
我正在尝试转换熊猫系列的时区。我正在使用 pytz 包来执行此操作,但是我得到的值相差了几分钟。 我目前使用的代码可以在这里的答案中找到:Converting Items from Pandas Series to Date Time
其他答案建议使用localize() 函数来完成这项工作,但这在我的代码中不起作用。我尝试使用 normalize() 函数来解决此问题,但使用 pandas 系列时出现错误。
错误消息:AttributeError:“系列”对象没有属性 '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)
感谢您的帮助
【问题讨论】:
-
你能显示你正在使用的代码吗?添加错误消息而不生成它的代码并不是很有用。