-2

我正在使用 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)

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

4

1 回答 1

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,请参阅 pythonstrptime参考。你需要把它们去掉才能让它工作,但是pandas男人/女人足以嗅出格式,所以没有必要

于 2017-09-06T12:10:34.397 回答