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

如何将pandas中非标准时间字符串列转换为datetime格式

解决方案

你遇到的报错核心原因是时间字符串存在两种格式(分秒/时分秒),无法用单一格式匹配,先统一格式再转换即可:

步骤1:统一时间字符串格式

对仅含分秒的字符串前置补0:,让所有值都符合时:分:秒的结构:

import pandas as pd

# 示例数据
d = {'Name': ['Joe', 'Bob'], 'Time': ['58:34', '1:02:17']}
df = pd.DataFrame(data=d)

# 补全小时位
df['Time'] = df['Time'].apply(lambda x: f"0:{x}" if x.count(':') == 1 else x)

步骤2:转换为时间格式并计算总秒数

因为你的数据属于时长而非固定时刻,用pd.to_timedelta(时间差类型)比datetime更适配计算总秒数的需求:

# 转换为时间差类型
df['Time'] = pd.to_timedelta(df['Time'])

# 计算总秒数
df['total_seconds'] = df['Time'].dt.total_seconds()

输出结果示例

NameTimetotal_seconds
Joe0 days 00:58:343514.0
Bob0 days 01:02:173737.0

如果确实需要转换为datetime格式,统一格式后用pd.to_datetime(df['Time'], format='%H:%M:%S')即可正常转换,不会再报格式不匹配错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:54:01