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

求助:将特殊时长字符串转为datetime64[ns]失败,如何解决?

解决时间字符串转datetime64[ns]的问题

嗨,我来帮你搞定这个转换问题!你当前的代码有两个核心问题:

  • 你的format参数完全不符合输入字符串的格式(输入是HH:MM:SS或HH:MM的时长格式,不是%d/%m/%Y/%H/%m/%s这种日期格式)
  • 输入的是超过24小时的时长字符串,pd.to_datetime无法直接识别这类格式,加上错误的format导致转换失败,最终返回的是包含NaT的object类型数据

正确的处理步骤

因为你的输入是时长(比如87小时38分钟),我们需要先把它转换成时间间隔(timedelta),再基于一个基准日期转换成datetime64[ns]类型:

  1. 补全时间字符串格式,确保所有条目都是HH:MM:SS:
import pandas as pd

time = ['87:38:00','51:48:00','26:05:00','10:04','69:21:00','66:56:00','47:12:00']
# 给只有HH:MM的条目补全秒数部分
time_fixed = [t if len(t.split(':')) == 3 else f"{t}:00" for t in time]
  1. 将补全后的字符串转换成timedelta类型:
time_delta = pd.to_timedelta(time_fixed)
  1. 基于一个基准日期(比如1970-01-01),把时间间隔转换成datetime64[ns]类型:
base_date = pd.Timestamp('1970-01-01')
datetime_result = base_date + time_delta

现在你可以检查datetime_result.dtype,会发现它已经是datetime64[ns]类型了~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:02:32