Python 将具有12小时AM/PM(无零填充)的DateTime转换为24小时格式

Python 将具有12小时AM/PM(无零填充)的DateTime转换为24小时格式,python,pandas,datetime,Python,Pandas,Datetime,我希望能够按照日期时间的升序对数据帧进行排序,但我的格式目前不允许这样做 我试过了 df2['Date'] = pd.to_datetime(df2['Times'], format='%m/%d/%Y') df2['Times'] = pd.to_datetime(df2['Times'], format='%H:%M:%S %p') 我现在有这个 df2.iloc[:,0:2] Date Times 0 1/2/2018 3:00 AM 1 1

我希望能够按照日期时间的升序对数据帧进行排序,但我的格式目前不允许这样做

我试过了

df2['Date'] = pd.to_datetime(df2['Times'], format='%m/%d/%Y')

df2['Times'] = pd.to_datetime(df2['Times'], format='%H:%M:%S %p')
我现在有这个

df2.iloc[:,0:2]


         Date     Times
0    1/2/2018   3:00 AM
1   10/3/2018   3:50 PM
2  10/10/2019  11:14 PM
这是我想要的输出

         Date  Times
0  01/02/2018  03:00
1  10/03/2018  15:50
2  10/10/2019  23:14

或者任何可以让我按日期时间排序的输出。

您很接近了,主要问题是对12小时格式的比赛小时使用
%I
,对24小时格式的比赛小时使用
%H
,请检查。自定义输出格式的最后添加:

print (df2)
         Date     Times
0    1/2/2018   3:00 AM
1   10/3/2018   3:50 PM
2  10/10/2019  11:14 PM

df2['Date'] = pd.to_datetime(df2['Date'], format='%m/%d/%Y').dt.strftime('%m/%d/%Y')
df2['Times'] = (pd.to_datetime(df2['Times'].str.strip(), format='%I:%M %p')
                  .dt.strftime('%H:%M'))

print (df2)
         Date  Times
0  01/02/2018  03:00
1  10/03/2018  15:50
2  10/10/2019  23:14

顺便说一句,您是如何添加该表的?我必须垃圾邮件空白,使其看起来更像一个表格。我在运行它时遇到此错误:“时间数据'3:00pm'与格式'%I:%M%p'(match)@LseLibrary不匹配-应该有一些数据使用其他格式,如果需要将其他格式替换为
NaN
s add
errors='concurve'
参数,答案被编辑了。不知道为什么,但现在我得到了《泰晤士报》的所有NATcolumn@LseLibrary什么是打印(df2['Times'].iloc[:10].tolist())?