如何将 numpy.datetime64
对象转换为 datetime.datetime
(或 Timestamp
)?
在以下代码中,我创建一个datetime,timestamp和datetime64对象。
import datetime
import numpy as np
import pandas as pd
dt = datetime.datetime(2012, 5, 1)
# A strange way to extract a Timestamp object, there's surely a better way?
ts = pd.DatetimeIndex([dt])[0]
dt64 = np.datetime64(dt)
In [7]: dt
Out[7]: datetime.datetime(2012, 5, 1, 0, 0)
In [8]: ts
Out[8]: <Timestamp: 2012-05-01 00:00:00>
In [9]: dt64
Out[9]: numpy.datetime64('2012-05-01T01:00:00.000000+0100')
注意:从时间戳中获取日期时间很容易:
In [10]: ts.to_datetime()
Out[10]: datetime.datetime(2012, 5, 1, 0, 0)
但是我们如何从 numpy.datetime64
(dt64
) 中提取 datetime
或 Timestamp
?
.
更新:我的数据集中有一个有点棘手的例子(可能是激励性的例子),它似乎是:
dt64 = numpy.datetime64('2002-06-28T01:00:00.000000000+0100')
应该是datetime.datetime(2002, 6, 28, 1, 0)
,而不是一个长整型数值(1025222400000000000L
)!
numpy
和pandas
版本。 - jfspd.Timestamp(dt64).to_datetime()
。我仍然有点不满意,但肯定Wes'对我的旧问题不太具体(因此更适合世界)!再次感谢您抽出时间来回答它。 :) - Andy HaydenTimestamp
”,而Timestamp
本身就是datetime
(它的一个子类):) - jfs