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

Python中mm:ss格式字符串转hh:mm:ss及timedelta64的报错解决

解决mm:ss格式字符串转pandas timedelta64类型的问题

问题原因

pd.to_timedelta() 默认要求字符串为 hh:mm:ss 或包含天数的格式,直接传入 mm:ss 格式会被误判为 hh:mm,触发 ValueError: expected hh:mm:ss format 错误。

解决方案

方法1:补全00:前缀

给每个mm:ss字符串前添加00:,将格式转为00:mm:ss,让pd.to_timedelta()正确识别为小时:分钟:秒:

# 补全前缀
df2['Chip Time'] = '00:' + df2['Chip Time']
# 转换为timedelta64类型
df2['Chip Time'] = pd.to_timedelta(df2['Chip Time'])

方法2:拆分分钟和秒计算总时长

如果存在超过60分钟的场景,可拆分字符串中的分钟和秒,计算总秒数后再转换:

# 拆分分钟和秒并转为数值
minutes, seconds = df2['Chip Time'].str.split(':', expand=True).astype(int).values.T
# 计算总秒数并转为timedelta
df2['Chip Time'] = pd.to_timedelta(minutes * 60 + seconds, unit='s')

方法3:用datetime辅助解析

借助datetime模块解析时间格式,再转为timedelta:

from datetime import datetime

def convert_to_timedelta(time_str):
    t = datetime.strptime(time_str, '%M:%S')
    return pd.Timedelta(minutes=t.minute, seconds=t.second)

df2['Chip Time'] = df2['Chip Time'].apply(convert_to_timedelta)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:31:13