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

如何将DataFrame中的timedelta转换为datetime.time格式

解决DataFrame多列时长转datetime.time格式的问题

针对DataFrame中多列存储的类似0 days 00:00:21格式的时长,可按以下步骤转换为hh:mm:ss格式的datetime.time类型:

1. 明确目标列

先确定需要转换的列,可直接指定列名列表:

target_cols = ['col1', 'col2']  # 替换成你的目标列名

如果不确定哪些列符合格式,可自动筛选字符串类型且匹配0 days hh:mm:ss格式的列:

import pandas as pd

# 自动识别符合格式的字符串列
target_cols = df.columns[df.apply(lambda x: x.str.match(r'0 days \d{2}:\d{2}:\d{2}').all())]

2. 执行格式转换

分两种数据类型场景处理:

场景一:列数据为字符串类型

先将字符串转为timedelta类型,再提取datetime.time对象:

for col in target_cols:
    # 字符串转timedelta
    df[col] = pd.to_timedelta(df[col])
    # 提取time部分
    df[col] = df[col].dt.time

场景二:列数据已为timedelta类型

直接提取datetime.time对象即可:

for col in target_cols:
    df[col] = df[col].dt.time

效果说明

转换后,列中元素会变为datetime.time类型,显示形式为hh:mm:ss,不再包含0 days前缀。若原时长超过24小时,dt.time会自动取模24小时后返回时间(例如1 days 02:30:00会转为02:30:00)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:39:59