You need to enable JavaScript to run this app. pandas 如何将“X days HH:MM:SS”格式的时长列转换为纯分钟数值
优惠活动
大模型
产品
解决方案
定价
更多

pandas 如何将“X days HH:MM:SS”格式的时长列转换为纯分钟数值

pandas时长列转纯分钟数值的可落地方案

核心思路

不需要手动写正则拆分字符串,pandas原生的pd.to_timedelta()本身就支持解析“X days HH:MM:SS”这类标准时长字符串,几行代码就能搞定,稳定性远高于手动拆分字段。

实现代码

import pandas as pd

# 替换为你实际的目标列名,比如原列名叫duration
df["duration"] = pd.to_timedelta(df["duration"])
# 生成整数格式的纯分钟列,匹配秒数舍去取整的规则
df["duration_minutes"] = df["duration"].dt.total_minutes.astype(int)

效果匹配验证

  • 输入"0 days 00:39:00":转换后得到整数39,和示例要求一致
  • 输入"1 day 01:45:23":总分钟计算结果约为1545.38,取整数部分后得到1545,完全符合示例输出要求

必避的坑

千万别用df["duration"].dt.seconds / 60的方式算分钟,这个属性只会返回时长里当日的秒数,完全忽略days部分的数值,算出来的结果会比真实值小非常多。如果列里有空值,pd.to_timedelta会自动把无效值转成NaT,最后对应分钟值为NaN,不会让整个流程崩掉。

异常处理说明

就算列里有部分格式不统一的值(比如有的写法少了前导零、空格分隔不一致),pd.to_timedelta也基本都能正常识别,不用额外调整逻辑。真遇到解析失败的行,单独排查对应字符串的格式问题就行,不用改整体转换代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 10:45:03