在过去的几个小时里,我一直在试图解决以下问题。
在我来自自动化系统的一个大数据集中,有一个DATE_TIME值,对于午夜的行,它的值没有整整一个小时,比如:12-5月-2017年0:16:20。
当我尝试将其转换为日期(以便它可用于转换)时,如下所示:
df['DATE_TIME'].astype('datetime64[ns]')我得到以下错误:
Error parsing datetime string "12-MAY-2017 0:16:20" at position 3我试着写一些REGEX来取出每一篇文章,但是由于这个时间可能是一个字符或两个字符,我什么也找不到。它似乎也不是为每个peice编写正则表达式的理想解决方案。
对此有什么想法吗?
发布于 2017-08-09 10:11:05
尝试使用日期时间()方法:
df['DATE_TIME'] = pd.to_datetime(df['DATE_TIME'], errors='coerce')参数errors='coerce'将处理无法转换为datatime dtype的字符串
发布于 2017-08-09 10:11:06
我想你只需要pandas.to_datetime:
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被astype转换为numpy似乎是成问题,因为需要strings in ISO 8601 date or datetime format
df['DATE_TIME'].astype('datetime64[ns]')ValueError:错误解析日期时字符串“12-5-2017 0:16:20”位于第3位置
编辑:
如果datetimes中断(一些字符串或ints),则使用MaxU答案。
https://stackoverflow.com/questions/45587652
复制相似问题