无法转换 Pandas 数据帧时间戳
Failing to convert Pandas dataframe timestamp
我对使用 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'
有人评论 tz_localize 不是索引类型可用的方法,因此我尝试将其转换为列,但出现错误
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')
您必须先将索引列转换为 pandas 中的系列类型:
newdata.index.to_series().tz_localize('UTC').tz_convert('US/Eastern')
我被要求添加一个正式的答案,而不是仅仅编辑我的问题,所以在这里。请注意,它建立在上面的答案之上,但那个答案对我来说不太管用。
newdata.index=pd.DatetimeIndex(newdata.index).tz_localize('UTC').tz_convert('US/Eastern')
我对使用 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'
有人评论
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')
您必须先将索引列转换为 pandas 中的系列类型:
newdata.index.to_series().tz_localize('UTC').tz_convert('US/Eastern')
我被要求添加一个正式的答案,而不是仅仅编辑我的问题,所以在这里。请注意,它建立在上面的答案之上,但那个答案对我来说不太管用。
newdata.index=pd.DatetimeIndex(newdata.index).tz_localize('UTC').tz_convert('US/Eastern')