在pandas

时间:2016-02-17 10:28:34

标签: pandas localization

关于如何在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自动执行)。

1 个答案:

答案 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访问者

获取