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

Python时间数据类型转换:将时分秒字符串转为标准格式或总秒数

时间字符串格式转换解决方案

针对你需要将列中类似30m 32s的时间字符串转换为友好格式的需求,以下是具体实现方案:

一、转换为MM:SS格式

如果你的数据是Pandas DataFrame中的列,可以通过正则提取时间单位数值,再格式化拼接:

import pandas as pd

# 示例数据(包含多种时间格式情况)
df = pd.DataFrame({'time': ['30m 32s', '1h 5m 10s', '2m', '45s', '2h 30s']})

# 提取小时、分钟、秒,缺失的单位补0
time_parts = df['time'].str.extract(r'(?:(\d+)h\s*)?(?:(\d+)m\s*)?(\d+)s?') \
    .fillna(0) \
    .astype(int)

# 计算总分钟数(小时转分钟),然后格式化为MM:SS
df['mm_ss'] = time_parts.apply(lambda x: f"{x[0]*60 + x[1]:02d}:{x[2]:02d}", axis=1)

执行后mm_ss列会得到:30:32、65:10、02:00、00:45、120:30这样的结果,确保分钟和秒都是两位数字。

二、转换为总秒数

同样用正则提取各单位数值,换算成总秒数:

# 基于上面的time_parts计算总秒数
df['total_seconds'] = time_parts.apply(lambda x: x[0]*3600 + x[1]*60 + x[2], axis=1)

执行后total_seconds列会得到对应数值:1832、3910、120、45、7230。

注意事项

  • 如果你的时间字符串只有分钟和秒(没有小时),可以简化正则为r'(\d+)m\s*(\d+)s',但上面的正则兼容带小时的情况。
  • 确保列中没有格式错误的字符串,若有可以先通过str.contains过滤或处理异常值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:05:25