You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将1-4位数字转为%H%M格式?Fedex数据集时间转换报错求助

解决Fedex数据集时间列格式转换问题

问题场景

数据集的Actual_Shipment_Time列包含1-4位数字字符串(如'5'、'23'、'345'、'2145'),需要转换为HH:MM格式,但执行以下代码时报错:

df['Actual_Shipment_Time'] = pd.to_datetime(df['Actual_Shipment_Time'], format = '%H%M').dt.strftime('%H%M')

错误信息:

ValueError: time data '9' does not match format '%H%M' (match)

解决方案

报错核心原因是%H%M格式要求输入必须是4位数字(对应2位小时+2位分钟),但数据中存在1-3位的短字符串,无法匹配格式。解决思路是先统一补前导零至4位,再进行时间转换。

完整实现代码

# 先将所有时间字符串转为字符串类型并补前导零到4位
df['Actual_Shipment_Time'] = df['Actual_Shipment_Time'].astype(str).str.zfill(4)
# 转换为目标时间格式(24小时制)
df['Actual_Shipment_Time'] = pd.to_datetime(df['Actual_Shipment_Time'], format='%H%M').dt.strftime('%H:%M')

12小时制格式适配

如果需要输出12小时制格式,只需修改strftime的格式参数:

df['Actual_Shipment_Time'] = pd.to_datetime(df['Actual_Shipment_Time'], format='%H%M').dt.strftime('%I:%M %p')

转换结果验证

原始输入24小时制输出12小时制输出
500:0512:05 AM
2300:2312:23 AM
34503:4503:45 AM
214521:4509:45 PM

内容的提问来源于stack exchange,提问作者Ibad Ullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:33:25