2016-12-28 18 views
2

我有以下字典:大熊猫,pytz - 简单的时区转换

{'actual': {Timestamp('2013-02-20 13:30:00'): 0.93000000000000005}}

我将其更改为DF:

df= pd.DataFrame.from_dict(dict, orient='columns', dtype=None) 

如果我执行:

df.index = df.index.tz_localize('US/Eastern').tz_convert(pytz.utc) 

df时间戳已正确转换并返回:

      actual 
2013-02-20 18:30:00+00:00 0.93 

但是,如果我在第2行,如裂命令:

df.index= df.index.tz_localize('US/Eastern') 
df.index.tz_convert(pytz.utc) 

它不被转换和回报:

      actual 
2013-02-20 13:30:00-05:00 0.93 

任何人都知道这是为什么?

+0

@亮度种族在轨道:你好,是的,将其添加到标签 –

回答

2

你只需要指数在第二行分配回df

import pytz 
df.index = df.index.tz_localize('US/Eastern') 
df.index = df.index.tz_convert(pytz.utc) 

df 
#       actual 
#2013-02-20 18:30:00+00:00 0.93 
+0

嗯ok了 - 我很新的大熊猫,但我会说这不是属性修改的标准行为吗? –

+0

这实际上是修改属性的一种非常标准的方法。由于在熊猫中,大多数功能都是功能性的,即,除非明确告知这样做,否则它们不会修改对象。 – Psidom

+0

好吧,我明白了。 Thx,非常有用。 –