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

如何将Pandas中mm:ss格式的object列转为时间格式并转成秒数?

解决mm:ss格式列转总秒数的问题

我来帮你搞定这个问题!你遇到的pd.to_timedelta转换不符合预期,其实是因为默认情况下,这个函数会把33:22这样的字符串解析成小时:分钟,而不是你需要的分钟:秒,所以才会出问题。下面给你两种可靠的解决方法:

方法一:预处理字符串后用pd.to_timedelta转换

我们可以给每个时间字符串前面加上00:,把格式变成HH:mm:ss,这样pd.to_timedelta就能正确识别出分钟和秒了,之后再用dt.total_seconds()提取总秒数:

import pandas as pd

# 你的示例数据
df = pd.DataFrame({'time': ['33:22', '24:56', '30:15', '26:57']})

# 预处理字符串并转换为timedelta类型
df['time_delta'] = pd.to_timedelta('00:' + df['time'])

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

运行后,total_seconds列就会得到2002、1496、1815、1617这些正确的秒数结果。

方法二:直接拆分计算总秒数

如果你不想用timedelta类型,也可以直接拆分字符串里的分钟和秒,手动计算总秒数,这种方法更直观:

# 拆分分钟和秒,计算总秒数
df['total_seconds'] = df['time'].apply(lambda x: int(x.split(':')[0]) * 60 + int(x.split(':')[1]))

这个方法通过split(':')把每个时间字符串拆成分钟和秒的字符串,转成整数后用分钟*60 + 秒得到总秒数,结果和方法一完全一致。

两种方法都能完美解决你的问题,你可以根据自己的需求选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:03:13