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

Pandas将秒数列转为时分秒格式如何去除0 days前缀

实现方案

你可以根据你的秒数范围选择以下任意一种方法:

  • 方法1:对timedelta字符串做替换,适配所有秒数小于1天的场景
    直接把转换后字符串里的0 days 前缀删除即可,修改后的映射代码如下:

    df['Time'] = df['Sec'].map(lambda row: str(datetime.timedelta(seconds=row)).replace('0 days ', ''))
    

    如果担心有空格格式差异,也可以用切割方式取时分秒部分:

    df['Time'] = df['Sec'].map(lambda row: str(datetime.timedelta(seconds=row)).split(maxsplit=2)[-1])
    
  • 方法2:使用pandas内置时间格式化,适配秒数小于1天的场景
    直接将秒数按时间单位转换为datetime类型后格式化输出,代码更简洁:

    import pandas as pd
    df['Time'] = pd.to_datetime(df['Sec'], unit='s').dt.strftime('%H:%M:%S')
    

    注意:该方法仅适用于秒数小于86400(即1天)的场景,若秒数超过1天,小时部分会自动取模24,导致结果不准

  • 方法3:手动计算时分秒,适配所有秒数场景
    如果你的秒数可能超过1天,需要把天数折算成累加的小时数,可以自定义转换函数:

    def sec_to_hms(sec):
        hours = sec // 3600
        minutes = (sec % 3600) // 60
        seconds = sec % 60
        return f"{hours:02d}:{minutes:02d}:{seconds:02d}"
    
    df['Time'] = df['Sec'].map(sec_to_hms)
    

    该方法不管秒数多大都可以输出正确的时分秒格式,比如90000秒(25小时)会输出25:00:00,不会出现天数前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:57:04