无法将时区转换为panda中的时间戳



我正在尝试使用以下代码将时间戳的时区转换为UTC:

s = pd.to_datetime(pd.Series(['2018-10-28 01:30:00',
'2018-10-28 02:00:00',
'2018-10-28 02:30:00',
'2018-10-28 02:00:00',
'2018-10-28 02:30:00',
'2018-10-28 03:00:00',
'2018-10-28 03:30:00']))

df = pd.DataFrame(s)
df = df.tz_localize(pytz.timezone('US/Eastern')).tz_convert(pytz.timezone('UTC'))

我得到这个错误:

TypeError: index is not a valid DatetimeIndex or PeriodIndex

要处理Series,请选择列0并使用.dt访问器:

#if input is DataFrame with column 0
df = pd.DataFrame(s)
s = df[0].dt.tz_localize(pytz.timezone('US/Eastern')).dt.tz_convert(pytz.timezone('UTC'))
print (s)
0   2018-10-28 05:30:00+00:00
1   2018-10-28 06:00:00+00:00
2   2018-10-28 06:30:00+00:00
3   2018-10-28 06:00:00+00:00
4   2018-10-28 06:30:00+00:00
5   2018-10-28 07:00:00+00:00
6   2018-10-28 07:30:00+00:00
Name: 0, dtype: datetime64[ns, UTC]

#if input is Series
s = s.dt.tz_localize(pytz.timezone('US/Eastern')).dt.tz_convert(pytz.timezone('UTC'))
print (s)
0   2018-10-28 05:30:00+00:00
1   2018-10-28 06:00:00+00:00
2   2018-10-28 06:30:00+00:00
3   2018-10-28 06:00:00+00:00
4   2018-10-28 06:30:00+00:00
5   2018-10-28 07:00:00+00:00
6   2018-10-28 07:30:00+00:00
dtype: datetime64[ns, UTC]

最新更新