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

如何将DataFrame中timedelta类型的startTime转为时分秒格式?

解决方案

针对你遇到的startTime列格式问题,这里有几种可靠的处理方式:

方法1:直接字符串分割(最简单,适合格式固定的情况)

因为你的startTime字符串格式是X days HH:MM:SS,可以直接按空格分割后提取时间部分:

df['startTime'] = df['startTime'].str.split(' ', expand=True)[2]

解释:str.split(' ')将字符串按空格拆分成列表,取索引为2的元素就是目标时间字符串。

方法2:处理为时间差(Timedelta)后转换为时间格式

如果导入后startTime实际是Timedelta类型(而非字符串),或者你想更规范地处理时间逻辑:

  1. 先将字符串转换为Timedelta对象:
df['startTime'] = pd.to_timedelta(df['startTime'])
  1. 将Timedelta转换为时间格式(通过与0点时间戳相加):
df['startTime'] = (pd.Timestamp('00:00:00') + df['startTime']).dt.time.astype(str)

你之前代码报错的原因

你执行pd.to_datetime(df1['startTime'])时,0 days 08:30:00是时间差(Timedelta)格式,不是标准的日期时间格式,pd.to_datetime无法直接解析这类字符串,因此抛出TypeError。正确的做法是先处理为Timedelta再转换为时间,或者直接用字符串分割提取目标部分。

内容的提问来源于stack exchange,提问作者Siva Rama krishna Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:35:24