2017-04-03 58 views
0

我想设置时间指数使用pandas.to_datetime功能大熊猫数据框,但结果日期时间UTC转换秒的时候,虽然没有要求它:熊猫to_datetime意想不到的回报UTC

import pandas 
import datetime,time 

datetime1 = '2017-03-30T12-00-00' 
d = datetime.datetime.strptime(datetime1, "%Y-%m-%dT%H-%M-%S") 
s = time.mktime(d.timetuple()) 

print pandas.to_datetime(datetime1, format = "%Y-%m-%dT%H-%M-%S") 
print pandas.to_datetime(s, unit='s') 

得到两个不同的结果,尽管pandas.to_datetime的utc选项在两种情况下都不使用。

任何想法?

回答

0

time.mktime()默认不回UTC,看到docstime.mktime()

它的参数是struct_time或满9元组[...]这表示在本地时间,而不是UTC时间。

+0

是的,'time.mktime()'返回当地时间。但是一旦在'pandas.to_datetime'中,大熊猫的结果就是UTC。 – dgdm

+0

我的错误是'mktime'的理解,我应该使用'calendar.timegm':'s = calendar.timegm(d.timetuple())' – dgdm