Python 传递缩短的日期时间
在过去的几个小时里,我一直在试图解决以下问题 在我从一个自动化系统得到的一个大数据集中,有一个日期时间值,对于午夜的行,它的值没有一个完整的小时,比如:2017年5月12日0:16:20 当我尝试将其转换为日期(以便其可用于转换)时,如下所示: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 我试着写一些正则
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]')