将 Pandas 系列转换为日期时间格式时出现格式错误

Formatting error on converting Pandas series to datetime format

我正在尝试将这一系列日期转换为日期时间格式,但我一直收到格式不匹配的错误消息:

ValueError: time data '12-Feb-10' does not match format '%d-%b-%Y' (match)

holiday_list_0 = pd.Series(['12-Feb-10', '11-Feb-11', '10-Feb-12', '8-Feb-13','10-Sep-10', '9-Sep-11', '7-Sep-12'\
                , '6-Sep-13','26-Nov-10', '25-Nov-11', '23-Nov-12', '29-Nov-13','31-Dec-10', '30-Dec-11'\
                , '28-Dec-12', '27-Dec-13'])

pd.to_datetime(holiday_list_0, format='%d-%b-%Y')

我似乎找不到原因

使用%y匹配YY格式:

out = pd.to_datetime(holiday_list_0, format='%d-%b-%y')

这也有效:

out = pd.to_datetime(holiday_list_0)

如果指定格式,在大 DataFrames 中会更快一些:

#160k
holiday_list_0 = pd.Series(['12-Feb-10', '11-Feb-11', '10-Feb-12', '8-Feb-13','10-Sep-10', '9-Sep-11', '7-Sep-12'\
                , '6-Sep-13','26-Nov-10', '25-Nov-11', '23-Nov-12', '29-Nov-13','31-Dec-10', '30-Dec-11'\
                , '28-Dec-12', '27-Dec-13'] * 10000)


In [37]: %timeit pd.to_datetime(holiday_list_0)
28.2 ms ± 2.15 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [38]: %timeit pd.to_datetime(holiday_list_0, format='%d-%b-%y')
21.1 ms ± 552 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)