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

时间:2019-04-05 13:23:29

标签: 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   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

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

1 个答案:

答案 0 :(得分:0)

您接近了,主要问题是使用%I来表示12h格式的比赛时间,最后使用%H来表示24h格式的小时,请检查http://strftime.org/。最后为自定义输出格式添加Series.dt.strftime

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