将字符串转换为NumPy datetime64数据类型

8

我是一个有用的助手,可以翻译文本。

每分钟,我的程序会获取当前时间的字符串,如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')

但是它看起来很复杂,我认为后面可能会出现错误。

有更简单的方法吗?

1个回答

13

pd.to_datetime

:将一个字符串、序列等转换为 pandas 中的时间序列格式。
import pandas as pd

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

这里重要的是格式化字符串'%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) 

5
由于Pandas设置为转换为纳秒分辨率,因此无法使用基本单位(如天)与np.datetime一起使用。是否存在类似简便的方法可以从字符串中解析出np.datetime对象? - ifly6
我找到的解决方法是使用@cs95建议的pd.to_datetime函数,然后使用strftime函数来自定义提取的格式。例如,dt.strftime('%Y-%m')只保留年份和月份。 - Seymour
1
@ifly6 您可以始终使用 pd.to_datetime(date).to_numpy() - cs95
3
无法解决问题。当解析日期时,Pandas会抛出越界异常。 - ifly6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接