我和Pandas合作很新,我想弄清楚为什么这个时间戳不会转换。例如,一个单独的时间戳是字符串'2010-10-06 16:38:02'
。代码如下所示:
newdata = pd.DataFrame.from_records(data, columns = ["col1", "col2", "col3", "timestamp"], index = "timestamp")
newdata.index = newdata.index.tz_localize('UTC').tz_convert('US/Eastern')
并收到此错误:
AttributeError: 'Index' object has no attribute 'tz_localize'
有人评论here tz_localize不是Index类型可用的方法,所以我尝试将其转换为列而不是错误
TypeError: index is not a valid DatetimeIndex or PeriodIndex
然后我找到this site,其中tz_localize 仅对索引起作用,无论如何。
如果有人能帮助我,我将不胜感激!我使用Pandas 0.15.2。我相信这段代码可能适用于早期版本的其他人,但我无法切换。
编辑:
好吧,稍微搞了一下我发现这并没有引发任何错误,似乎在短期内做了我想做的事:newdata.index=pd.DatetimeIndex(newdata.index).tz_localize('UTC').tz_convert('US/Eastern')
答案 0 :(得分:1)
我被要求添加正式答案,而不仅仅是编辑我的问题,所以现在就是这样。请注意,它建立了上面的答案,但那对我来说并不适合。
newdata.index=pd.DatetimeIndex(newdata.index).tz_localize('UTC').tz_convert('US/Eastern')
答案 1 :(得分:0)
您必须先将索引列转换为pandas中的系列类型:
newdata.index.to_series().tz_localize('UTC').tz_convert('US/Eastern')