Python 3.x Pandas to_datetime解析格式奇怪的日期

Python 3.x Pandas to_datetime解析格式奇怪的日期,python-3.x,pandas,datetime,python-datetime,string-to-datetime,Python 3.x,Pandas,Datetime,Python Datetime,String To Datetime,TL;医生: 如何使用pd.to_datetime()中的format参数来解析格式为“YYYY-mmdd”的日期 背景: 我从api中提取一些数据,索引是日期,但格式为字符串。以下是索引的外观: Index(['2020 0422 22', '2020 0423 23', '2020 0424 24', '2020 0427 27', '2020 0428 28'], dtype='object') 选项1: 通常我会做一些类似于df.index=pd.to\u d

TL;医生:

如何使用pd.to_datetime()中的format参数来解析格式为“YYYY-mmdd”的日期

背景:

我从api中提取一些数据,索引是日期,但格式为字符串。以下是索引的外观:

Index(['2020 0422 22', '2020 0423 23', '2020 0424 24', '2020 0427 27',
       '2020 0428 28'],
      dtype='object')
选项1:

通常我会做一些类似于
df.index=pd.to\u datetime(df.index)
的事情,这通常会像一个符咒一样工作。如果这不起作用,那么我将使用format参数进行如下解析
pd.to_datetime(format='%y/%m/%d)
,但是考虑到一天包含两次,我不确定如何使用此参数

选项2:

我还可以使用字符串理解创建一个新列表,将其转换为datetime,然后将df的索引设置为该值。大概是这样的:

[ x.split(' ')[0] + x.split(' ')[1] for x in df.tail().index ]

但这些选择似乎都不太像蟒蛇

问题:

如何使用pd.to_datetime()中的format参数解析格式为“YYYY mmdd dd”的日期?

n=1
一起使用,选择第一个列表,然后传递给:

顺便说一句,最直观的答案是失败的:

df.index = pd.to_datetime(df.index, format='%Y %m%d %d')
print (df)
错误:将组名“d”重新定义为组4;是第3组

idx = pd.Index(['2020 0422 22', '2020 0423 23', '2020 0424 24', '2020 0427 27',
       '2020 0428 28'])
df = pd.DataFrame(index = idx)

df.index = pd.to_datetime(df.index.str.rsplit(n=1).str[0], format='%Y %m%d')
print (df)

Empty DataFrame
Columns: []
Index: [2020-04-22 00:00:00, 2020-04-23 00:00:00, 
        2020-04-24 00:00:00, 2020-04-27 00:00:00, 
        2020-04-28 00:00:00]
df.index = pd.to_datetime(df.index, format='%Y %m%d %d')
print (df)