Skip to main content
 首页 » 编程设计

python之如何对包含 12 小时 (AM/PM) 格式值的 Pandas 时间序列进行排序

2025年05月04日38JustinYoung

我正在使用 pandas 处理来自 csv 文件的一些数据。

我需要按 MEETING START TIME 列对 DataFrame df 中的数据进行排序,只需对时间进行排序。日期由另一个字段处理。

但我得到的结果是:

MEETING START TIME 
10:30 AM 
12:30 PM 
2:00 PM 
4:00 PM 
9:15 AM 
9:15 AM 

早上的任何 session 时间只有个位数的时间就结束了。我需要对日期格式或排序命令做些什么吗?

请您参考如下方法:

您可以使用 pd.datetools.parse 尝试将日期列(当前为字符串)转换为日期时间对象;那么你应该能够排序:

df = pd.DataFrame({'MEETING START TIME': ['10:30 AM','12:30 PM', '2:00 PM', '4:00 PM', '9:15 AM', '9:15 AM']}) 
df['MEETING START TIME'] = df['MEETING START TIME'].map(lambda x: pd.datetools.parse(x)) 
df.sort('MEETING START TIME') 
 
Out[33]:  
   MEETING START TIME 
5 2015-08-05 09:15:00 
4 2015-08-05 09:15:00 
0 2015-08-05 10:30:00 
1 2015-08-05 12:30:00 
2 2015-08-05 14:00:00 
3 2015-08-05 16:00:00