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

如何解决pandas转换DataFrame中多格式YouTube视频时长为分钟的报错问题

错误原因

你指定了固定格式%H:%M:%S调用pd.to_datetime,但你的时长字段存在两种格式:小时:分钟:秒(三段)和分钟:秒(两段),两段的时长无法匹配三段的格式规则,因此抛出报错。

解决方案

推荐两种适配多格式时长的处理方式:

方法1:使用pd.to_timedelta自动识别(更简便)

pd.to_timedelta是pandas专门用于处理时长类型的工具,原生支持多种分段时长格式,不需要手动对齐格式:

import pandas as pd

# 先去除字段前后多余空格,再转成timedelta类型
data['length_timedelta'] = pd.to_timedelta(data['length'].str.strip())
# 按总秒数换算为分钟,可按需保留小数位数
data['length_minutes'] = data['length_timedelta'].dt.total_seconds() / 60

方法2:自定义函数分割计算(更灵活可控)

如果后续需要自定义异常值处理规则,可以手动分割时长字符串按位计算:

def time_to_minutes(time_str):
    # 清除空格后按冒号拆分转成数字
    time_parts = list(map(int, time_str.strip().split(':')))
    if len(time_parts) == 3:
        # 小时:分钟:秒 格式
        return time_parts[0] * 60 + time_parts[1] + time_parts[2] / 60
    elif len(time_parts) == 2:
        # 分钟:秒 格式
        return time_parts[0] + time_parts[1] / 60
    # 可按需补充只有秒、只有分钟等其他格式的处理逻辑
    return 0

data['length_minutes'] = data['length'].apply(time_to_minutes)

转换效果验证

对你给出的原始样例转换后结果如下:

原始时长转换为分钟(保留两位小数)
4:26:00266.00
1:02:2362.38
9:319.52
1:211.35

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:45:04