pandas to_datetime 无法将字符串解析为日期和 return 字符串

pandas to_datetime couldn't parse string into dates and return strings

我有一个 Series s 作为

10241715000
  201709060
   11202017
     112017
     111617
     102417
     110217
    1122018

我尝试了以下代码将 s 转换为 datetime;

pd.to_datetime(s.str[:7], format='%-m%d%Y', errors='coerce')

但它返回 s,因为它没有进行任何转换,我期待的是

NaT
NaT
2017-01-20
NaT
NaT
NaT
NaT
2018-01-12

format是根据strftime指令定义的,%-m表示月份为十进制数,例如1; %Y 表示年份为十进制数,例如2018.我想知道这里有什么问题。我正在使用 Pandas 0.22.0Python 3.5.

更新

data = np.array(['10241715000','201709060','11202017','112017','111617','102417',
 '110217','1122018'])

s = pd.Series(data)

pd.to_datetime(s.str[-7:], format='%-m%d%Y', errors='coerce')

0    1715000
1    1709060
2    1202017
3     112017
4     111617
5     102417
6     110217
7    1122018
dtype: object

str 切片

应该是 -7 而不是 7
pd.to_datetime(s.astype(str).str[-7:], format='%m%d%Y', errors='coerce')
Out[189]: 
0          NaT
1          NaT
2   2017-01-20
3   2017-01-01
4          NaT
5          NaT
6          NaT
7   2018-11-02
Name: a, dtype: datetime64[ns]

更新

pd.to_datetime(s.str[-7:].str.pad(8,'left','0'), format='%m%d%Y', errors='coerce')
Out[208]: 
0          NaT
1          NaT
2   2017-01-20
3          NaT
4          NaT
5          NaT
6          NaT
7   2018-01-12
dtype: datetime64[ns]