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

pandas中如何将含超24小时的Object时长字符串转为DateTime类型

问题解决思路

错误原因分析

  • pd.to_datetime用于转换时间点数据,其%H格式符仅支持0-23范围内的小时值,你的数据包含35:00这类超过24小时的时长(时间段),天然不符合datetime的格式要求,所以第一次转换报错。
  • 你后续使用的%HH:%MM是错误的格式写法:标准格式符中%M代表分钟,额外添加的H和M会要求原始字符串中存在对应字符,因此匹配2:00这类正常数据时也会报错。

正确处理方案

时长类数据更适合转换为pandas的Timedelta(时间差)类型,适配任意长度的时间段计算需求,转换代码如下:

# 一次性处理两列时长数据
duration_cols = ['Planned Hours', 'Actual Hours']
for col in duration_cols:
    # 给原始时分格式补全秒位,适配Timedelta的识别规则
    time[col] = pd.to_timedelta(time[col] + ':00')

如果你的业务场景必须使用datetime类型,可以在Timedelta的基础上叠加基准日期转换,示例如下:

# 以1900-01-01为基准日期,将时长转换为对应时间点
time['Actual Hours'] = pd.to_datetime('1900-01-01') + pd.to_timedelta(time['Actual Hours'] + ':00')

补充说明

转换为Timedelta类型后,你可以直接对时长数据做求和、求差、统计平均值等运算,完全适配工时类数据的分析需求。

内容的提问来源于stack exchange,提问作者Rajaa Monnapillai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 00:24:01