如何将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保留为空白)
谢谢!
答案 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'))