pd.to_datetime 格式错误

问题描述

我有一个数据框 df,我想在其中将“时间”列设置为日期时间索引。转换前的列如下所示:

01-10-19    09:05
01-10-19    10:04
01-10-19    11:05
01-10-19    12:04
01-10-19    13:04
            ...  
31-05-20    22:05
31-05-20    23:05
01-06-20    00:05
01-06-20    01:05
01-06-20    02:05

所以我尝试了以下代码行:

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

这导致列中只有 NaT“值”,而没有安装 datetimeindex。我还尝试以多种方式更改格式,例如:'%%dd-%%mm-%%YY %%HH:%%MM''%d%d-%m%m-%Y%Y %H%H:%M%M',但它导致了相同的错误。 当我删除 errors='coerce' 时,我收到消息:ValueError: time data '09:05' does not match format '%d-%m-%Y %H:%M' (match)。我错过了什么?为什么格式错误,我该如何解决?非常感谢提前!

解决方法

试试这个:

df['Time'] = pd.to_datetime(df['Time'],infer_datetime_format= True)
print(df)

#output:
                 Time
0 2019-01-10 09:05:00
1 2019-01-10 10:04:00
2 2019-01-10 11:05:00
3 2019-01-10 12:04:00
4 2019-01-10 13:04:00
5 2020-05-31 22:05:00
6 2020-05-31 23:05:00
7 2020-01-06 00:05:00
8 2020-01-06 01:05:00
9 2020-01-06 02:05:00