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

如何处理pandas非规整时间戳列,去除日期仅保留HH:MM:SS格式时间

处理方案

针对两列混合三种格式的转换需求,可以通过自定义逐值处理函数实现,代码如下:

步骤1:导入依赖

import pandas as pd
from datetime import datetime

步骤2:定义格式转换函数

def convert_to_time(val):
    # 处理占位符"-"的情况
    if val == "-":
        # 若需保留原占位符,可直接return "-",此处默认返回时间空值方便后续运算
        return pd.NaT
    try:
        # 区分带日期的长格式和纯时间短格式
        if len(val) > 8:
            # 适配 DD-MM-YYYY HH:MM:SS 格式
            dt = datetime.strptime(val, "%d-%m-%Y %H:%M:%S")
            return dt.strftime("%H:%M:%S")
        else:
            # 校验已有HH:MM:SS格式的合法性
            datetime.strptime(val, "%H:%M:%S")
            return val
    except:
        # 异常值处理逻辑可按需调整,此处默认返回空值
        return pd.NaT

步骤3:对目标列应用转换

# 将下方的df替换为你自己的DataFrame变量名
df["Entr."] = df["Entr."].astype(str).apply(convert_to_time)
df["Fim"] = df["Fim"].astype(str).apply(convert_to_time)

补充说明

  • 若后续需要做时间差计算等运算,可将返回的字符串格式改为dt.time()返回时间对象
  • 异常捕获分支可根据你的数据特点调整返回值,比如填充默认时间、保留原始值等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 11:06:06