我试图了解pandas在添加到DataFrame时如何处理日期时间戳。在我的机器上,日期是在4小时前存储的。我怎样才能阻止这种情况发生?
前:
import pandas as pd
import datetime
test = pd.DataFrame({'A':['a','b','c'],'B':[1,2,3]})
test
Out[31]:
A B
0 a 1
1 b 2
2 c 3
dt = datetime.datetime(2016,10,4)
test['dt']=dt
test
Out[35]:
A B dt
0 a 1 2016-10-04
1 b 2 2016-10-04
2 c 3 2016-10-04
到目前为止一切都那么好,但是当我将数值看作数组时,我得到了:
test.dt.unique()
Out[36]: array(['2016-10-03T20:00:00.000000000-0400'], dtype='datetime64[ns]')
我如何保持这个2016-10-04T00:...
我想将它保存为日期对象,并且无论代码运行的时区如何都一样吗?
提前致谢。
答案 0 :(得分:0)
自从我发布这个以来,我在一小时左右就发现了一些东西。它远非理想的解决方案,但可以达到我的目的。
首先,我在NumPy中找到了一些关于缺乏天真时区的讨论,以供参考:
https://mail.scipy.org/pipermail/numpy-discussion/2013-April/066038.html
注意:我使用的是NumPy 1.8.1和Pandas 0.14.0
出于我的目的,我只是在机器当地时区迫使一切到午夜。
MAIN__':
test.f03:(.text+0x751): undefined reference to
答案 1 :(得分:0)
另见@MaxU上面的第二条评论,转载于此处。
test['dt'] = pd.to_datetime('2016-10-04', utc=True)