如何在Pandas DataFrame中将12小时制时间转换为24小时制
将Pandas DataFrame中的12小时制时间转换为24小时制
嘿,这事儿好办!咱们用Pandas自带的日期时间处理工具就能轻松搞定这个格式转换需求,具体步骤如下:
首先先确认下你提供的原始DataFrame:
import pandas as pd df = pd.DataFrame({ 'name':['abc','def','ghi'], 'time':['10:30 PM', '11:30 PM', '01:20 AM'] })
原始输出数据:
| name | time | |
|---|---|---|
| 0 | abc | 10:30 PM |
| 1 | def | 11:30 PM |
| 2 | ghi | 01:20 AM |
接下来是核心转换代码,我们先用pd.to_datetime解析12小时制的时间字符串,再用strftime格式化为24小时制的字符串:
# 解析12小时制时间并转换为24小时制格式 df['time'] = pd.to_datetime(df['time'], format='%I:%M %p').dt.strftime('%H:%M')
这里简单解释下参数含义:
%I:匹配12小时制的小时数(范围01-12)%M:匹配分钟数(范围00-59)%p:匹配AM/PM标记%H:输出24小时制的小时数(范围00-23)
运行完代码后,就能得到你想要的结果:
| name | time | |
|---|---|---|
| 0 | abc | 22:30 |
| 1 | def | 23:30 |
| 2 | ghi | 01:20 |
如果不想覆盖原有的time列,也可以新建一个列来存储转换后的数据,只需要修改代码为:
df['time_24h'] = pd.to_datetime(df['time'], format='%I:%M %p').dt.strftime('%H:%M')
这样就完美解决你的需求啦!
内容的提问来源于stack exchange,提问作者Bashar




