将字符串转换为NumPy datetime64 dtype

may*_*ull 1 python arrays datetime numpy

我程序每分钟获取一串当前时间,因为 date = '201711081750'

我想将这些字符串作为np.datetime64存储到数组中。

我想我可以将这种字符串转换为

>>> date = '201711081750'

>>> np.datetime64( date[:4] +'-'+date[4:6]+'-'+date[6:8]+' ' +date[8:10]+':'+date[10:]  , 'm' )
numpy.datetime64('2017-11-08T17:50')
Run Code Online (Sandbox Code Playgroud)

但是它看起来很复杂,我认为稍后可能会引发错误。

有更简单的方法可以做到这一点吗?

cs9*_*s95 6

pd.to_datetime

import pandas as pd

pd.to_datetime(date, format='%Y%m%d%H%M')
Timestamp('2017-11-08 17:50:00')
Run Code Online (Sandbox Code Playgroud)

这里重要的一点是格式字符串'%Y%m%d%H%M'。


datetime.datetime 等效于python。

from datetime import datetime as dt

dt.strptime(date, '%Y%m%d%H%M')
datetime.datetime(2017, 11, 8, 17, 50) 
Run Code Online (Sandbox Code Playgroud)

  • 这不会产生将 `np.datetime` 与天等基本单位一起使用的可能性,因为 Pandas 设置为转换为纳秒分辨率。是否存在类似的简单方法来解析字符串中的 `np.datetime` 对象? (5认同)
  • 并不能解决问题。Pandas 解析日期时会抛出越界异常 (3认同)