numpy.datetime64をPythonのdatetime.datetime型にキャストする
TL;DR
import datetime
# numpy_datetime = numpy.datetime64型の変数
python_datetime = datetime.datetime.fromtimestamp(numpy_datetime.astype(datetime.datetime) * 1e-9)
参考:https://stackoverflow.com/questions/13703720/converting-between-datetime-timestamp-and-datetime64
補足
- たとえばpandasでエクセルデータをDataFrameにしたとする。その際、セルのデータ型が日時だと、numpy.datetime64にキャストされる。
- これをPythonのdatetime.datetime型にするのはすこしめんどくさかった。結論として、
numpy.datetime64 -> unixtime -> datetime.datetime
と変換すればよい - numpy.datetime64を.astype(datetime.datetime)とするとUNIX timeに変換されるが、この値はint型であり、一方Pythonのdatetime.datetimeのunixtimeはFloat型である(この差は、精度とか計算効率の話かな?)。
- なのでnumpy-unixtimeに1e-9をかけて、Python-unixtimeと桁を合わせてから、datetime.datetime.fromtimestanp(unixtime)でPythonのdatetime.datetime型が得られる
Author And Source
この問題について(numpy.datetime64をPythonのdatetime.datetime型にキャストする), 我々は、より多くの情報をここで見つけました https://qiita.com/Kanahiro/items/3ed1372358735c83884c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .