ValueError:时间数据' 2017年8月27日23:32:58'不符合格式'%d-%m-%Y%H:%M:%S' (比赛)

时间:2017-09-06 12:09:14

标签: python python-2.7 pandas odo

我正在使用pandas和odo将csv文件导入数据库,文件中有一个日期字段,格式为27th August 2017 23:06:25我希望转换为此格式%d-%m-%Y %H:%M:%S

这是我正在使用的代码片段:

df['Date'] = pd.to_datetime(df['Date'], format='%d-%m-%Y %H:%M:%S')

我最终得到了错误

ValueError: time data '27th August 2017 23:32:58' does not match format '%d-%m-%Y %H:%M:%S' (match)

任何有想法解决这个问题的人?请

1 个答案:

答案 0 :(得分:3)

pandas可以在没有格式说明符的情况下解析这个问题:

In[25]:
pd.to_datetime('27th August 2017 23:32:58')

Out[25]: Timestamp('2017-08-27 23:32:58')

因此您无需说明此示例的格式

另一点是,即使你尝试过类似的东西:

In[28]:
pd.to_datetime('27th August 2017 23:32:58', format='%dth %B %Y %H:%M:%S')

Out[28]: Timestamp('2017-08-27 23:32:58')

对于日期字符串,它会失败,如:

'3rd June 2011 12:11:23'

由于'rd',您无法使用to_datetime传递格式来处理日期格式,请参阅python strptime参考。你需要将它们剥离才能使它工作,但是pandas是男人/女人足以嗅探格式所以没有必要