缺少';%I:%M%p';数据框架中的数据-Python

缺少';%I:%M%p';数据框架中的数据-Python,python,datetime,pandas,dataframe,Python,Datetime,Pandas,Dataframe,我在一个有完整格式的datetime的数据库中处理时间:'%d/%m/%Y%I:%m%p',,还有一些只有:'%d/%m/%Y'。因此,当我尝试使用pd.to\u datetime时,它会给我带来错误: “时间数据'24/03/2013'与格式不匹配'%d/%m/%Y%I:%m%p'(匹配)” 是否有方法将缺少的'%I:%M%p'添加到df中的'24/03/2013' 这是我用来转换为datetime格式的代码: time = pd.to_datetime(samples.DATE_HOURS,

我在一个有完整格式的datetime的数据库中处理时间:
'%d/%m/%Y%I:%m%p',
,还有一些只有:
'%d/%m/%Y'
。因此,当我尝试使用
pd.to\u datetime时,它会给我带来错误:
“时间数据'24/03/2013'
与格式不匹配
'%d/%m/%Y%I:%m%p'(匹配)”

是否有方法将缺少的
'%I:%M%p'
添加到df中的
'24/03/2013'

这是我用来转换为datetime格式的代码:

time = pd.to_datetime(samples.DATE_HOURS,format='%d/%m/%Y %I:%M %p')
设置

tidx = pd.date_range('2016-03-31', periods=5)

samples = pd.concat([
        tidx.to_series().dt.strftime('%d/%m/%Y %I:%M %p'),
        tidx.to_series().dt.strftime('%d/%m/%Y')],
                    ignore_index=True).to_frame('DATE_HOURS')

print(samples)

            DATE_HOURS
0  31/03/2016 12:00 AM
1  01/04/2016 12:00 AM
2  02/04/2016 12:00 AM
3  03/04/2016 12:00 AM
4  04/04/2016 12:00 AM
5           31/03/2016
6           01/04/2016
7           02/04/2016
8           03/04/2016
9           04/04/2016

pd.to_datetime(samples.DATE_HOURS,format='%d/%m/%Y %I:%M %p')
ValueError:时间数据“31/03/2016”与格式“%d/%m/%Y%I:%m%p”不匹配(匹配)



故事的寓意是,不要强制格式。让
to_datetime
算算吧

您忘记添加
dayfirst=True
部分。太好了!很有效,谢谢。只是好奇,为什么会有这种格式?
format
提供了一种解析不太常见的日期表示方式的方法。但是,您将无法传递多种格式。那么我会采取不同的方法。但我会留着回答另一个问题
pd.to_datetime(samples.DATE_HOURS,format='%d/%m/%Y %I:%M %p')