关于如何在pandas中本地化时间戳有一些问题,但是所有这些都要求将列本地化为索引。我不想要那个,我想本地化一个列,而不是索引,例如:
df = pd.DataFrame({'start': pd.to_datetime([1439687730.439, 1439687731.439], unit='s')})
df['start'].tz_localize('utc')
这给我一个错误:
TypeError: index is not a valid DatetimeIndex or PeriodIndex
我的目标是使用pandas转换我的本地时间(CEST)中的时间戳(datetime
自动执行)。
答案 0 :(得分:9)
当您在Series
而不是DatetimeIndex
上操作时,您需要使用.dt
访问者:
In [191]:
df = pd.DataFrame({'start': pd.to_datetime([1439687730.439, 1439687731.439], unit='s')})
df['start'].dt.tz_localize('utc')
Out[191]:
0 2015-08-16 01:15:30.439000+00:00
1 2015-08-16 01:15:31.439000+00:00
Name: start, dtype: datetime64[ns, UTC]
tz_localize
方法仅适用于datetimeIndex
个对象因此错误,但可以通过dt
访问者