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

如何将pandas计算得到的时间差转换为十进制时间格式

解决方案

建议你优先跳过转字符串截取的步骤,直接基于Picking Time的timedelta格式计算十进制时间,运算效率更高也不会出现边界错误:

方案1:基于timedelta直接计算(推荐)

两个datetime相减得到的是pandas的timedelta类型,直接调用dt.total_seconds()获取总秒数后按需要的单位换算即可:

  • 转十进制小时(例:1小时15分30秒 = 1.2583小时)
# 1小时=3600秒,总秒数除以3600即可
data['Picking Time Decimal(H)'] = data['Picking Time'].dt.total_seconds() / 3600
  • 转十进制分钟(例:1小时15分30秒 = 75.5分钟)
# 1分钟=60秒,总秒数除以60即可
data['Picking Time Decimal(M)'] = data['Picking Time'].dt.total_seconds() / 60

方案2:如果已经完成字符串截取,可按如下方法转换

如果你的业务逻辑必须保留字符串格式的Picking Time,可以把字符串拆分后换算:

def time_str_to_decimal(time_str):
    # 拆分时、分、秒
    hour, minute, second = map(int, time_str.split(":"))
    # 按十进制小时换算,需要其他单位可自行调整公式
    return hour + minute / 60 + second / 3600

data['Picking Time Decimal'] = data['Picking Time'].apply(time_str_to_decimal)

注意:之前用字符串切片x[7:]的处理逻辑会丢失超过1天的时长数据,如果存在拣货时长跨天的场景,建议删除字符串转换步骤,直接用方案1处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:24:03