如何将具有空值的列转换为日期时间格式?

时间:2018-10-15 18:13:42

标签: python pandas datetime type-conversion

如何将df转换为pandas datetime数据类型? (具有空值)

datet = pd.DataFrame(['2018-09-07 00:00:00','2017-09-15 00:00:00',''],columns=['Mycol'])

datet['Mycol'] = datet['Mycol'].apply(lambda x: 
                                dt.datetime.strptime(x,'%Y-%m-%d %H:%M:%S'))

但是它返回错误:     ValueError:时间数据''与格式'%Y-%m-%d%H:%M:%S'不匹配

如何解决该错误? (将null保留为空白)

谢谢!

2 个答案:

答案 0 :(得分:4)

只需:

datet['Mycol'] = pd.to_datetime(datet['Mycol'], errors='coerce')

这将自动将null转换为NaT值。

输出:

0   2018-09-07
1   2017-09-15
2          NaT

答案 1 :(得分:0)

这是因为您的第三列包含一个空字符串。删除它,它可以工作。无法将空字符串转换为匹配格式。

datet = pd.DataFrame(['2018-09-07 00:00:00','2017-09-15 00:00:00'],columns=['Mycol'])

datet['Mycol'] = datet['Mycol'].apply(lambda x: datetime.datetime.strptime(x,'%Y-%m-%d %H:%M:%S'))