Как преобразовать объект 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 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)
Но как мы извлекаем datetime
или Timestamp
из numpy.datetime64
(dt64
)?
.
Обновление: несколько неприятный пример в моем наборе данных (возможно, мотивирующий пример):
dt64 = numpy.datetime64('2002-06-28T01:00:00.000000000+0100')
который должен быть datetime.datetime(2002, 6, 28, 1, 0)
, а не длинным (!) (1025222400000000000L
)...