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

如何从pandas DataFrame的unix时间戳字段中仅提取时间部分

问题解决方法

你遇到的AttributeError报错原因是:pd.to_datetime(df['time'], unit='s')返回的是pandas的Series对象,time()是单个Timestamp类的实例方法,无法直接在Series上调用,需要通过Series自带的.dt访问器调用时间相关方法。

正确实现方式

分两种常用场景按需选择:

  • 场景1:需要得到Python原生datetime.time类型的时间部分
    直接调用.dt.time即可:
    df['time_part'] = pd.to_datetime(df['time'], unit='s').dt.time
  • 场景2:需要得到HH:MM:SS.sss格式的字符串(和你示例需求一致)
    因为strftime的%f参数会输出6位微秒,通过字符串切片截取去掉末尾3位即可得到3位毫秒的时间格式:
    df['time_part'] = pd.to_datetime(df['time'], unit='s').dt.strftime('%H:%M:%S.%f').str[:-3]

测试验证

import pandas as pd
# 构造和你示例一致的测试数据
df = pd.DataFrame({'time': [1630236142.942]})
# 执行转换
df['time_part'] = pd.to_datetime(df['time'], unit='s').dt.strftime('%H:%M:%S.%f').str[:-3]
print(df['time_part'].iloc[0])
# 输出结果:11:22:22.942

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:30:04