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

如何将Pandas读取SAS7BDAT得到的秒数转为HH:MM:SS格式时间

将SAS时间数值转换为HH:MM:SS格式

你看到的28200.0是SAS时间值的底层存储形式——以秒为单位的整数(7小时50分钟换算成秒就是7×3600+50×60=28200)。下面是两种简单的转换方法:

方法1:用Pandas内置的时间工具

先把数值转为timedelta类型,再格式化为字符串:

# 转换为timedelta类型
df['time_col'] = pd.to_timedelta(df['time_col'], unit='s')
# 格式化为HH:MM:SS字符串
df['time_hhmmss'] = df['time_col'].dt.strftime('%H:%M:%S')

方法2:自定义函数处理

如果需要更灵活的控制(比如处理空值),可以写一个简单的转换函数:

import pandas as pd

def convert_sec_to_hhmmss(seconds):
    if pd.isna(seconds):
        return None  # 处理空值,可替换为你需要的占位符
    hours = int(seconds // 3600)
    minutes = int((seconds % 3600) // 60)
    secs = int(seconds % 60)
    # 格式化补零,确保时间以两位数显示
    return f"{hours:02d}:{minutes:02d}:{secs:02d}"

# 应用到目标列
df['time_hhmmss'] = df['time_col'].apply(convert_sec_to_hhmmss)

两种方法都能把28200.0转换成07:50:00格式的时间字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:47:17