Python 传递缩短的日期时间

Python 传递缩短的日期时间,python,pandas,jupyter-notebook,Python,Pandas,Jupyter Notebook,在过去的几个小时里,我一直在试图解决以下问题 在我从一个自动化系统得到的一个大数据集中,有一个日期时间值,对于午夜的行,它的值没有一个完整的小时,比如:2017年5月12日0:16:20 当我尝试将其转换为日期(以便其可用于转换)时,如下所示: df['DATE_TIME'].astype('datetime64[ns]') 我得到以下错误: Error parsing datetime string "12-MAY-2017 0:16:20" at position 3 我试着写一些正则

在过去的几个小时里,我一直在试图解决以下问题

在我从一个自动化系统得到的一个大数据集中,有一个日期时间值,对于午夜的行,它的值没有一个完整的小时,比如:2017年5月12日0:16:20

当我尝试将其转换为日期(以便其可用于转换)时,如下所示:

df['DATE_TIME'].astype('datetime64[ns]')
我得到以下错误:

Error parsing datetime string "12-MAY-2017  0:16:20" at position 3
我试着写一些正则表达式来提取每个片段,但由于时间可能是1个或2个字符,所以无法使任何东西工作。为每个peice编写正则表达式似乎也不是一个理想的解决方案

对此有什么想法吗?

尝试使用以下方法:

参数
errors='concurve'
将处理那些无法转换为
datatime
dtype

的字符串。我认为您只需要:

在numpy中转换为
astype
,因为需要ISO 8601日期或日期时间格式的
字符串:

df['DATE_TIME'].astype('datetime64[ns]')
ValueError:解析位置3处的日期时间字符串“2017年5月12日0:16:20”时出错

编辑:

如果日期时间被破坏(一些字符串或整数),则使用

df  = pd.DataFrame({'DATE_TIME':['12-MAY-2017 0:16:20','12-MAY-2017 0:16:20']})
print (df)
             DATE_TIME
0  12-MAY-2017 0:16:20
1  12-MAY-2017 0:16:20

df['DATE_TIME'] = pd.to_datetime(df['DATE_TIME'])
print (df)
            DATE_TIME
0 2017-05-12 00:16:20
1 2017-05-12 00:16:20
df['DATE_TIME'].astype('datetime64[ns]')