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

如何将DataFrame中的UTC时间戳转换为日期格式

解决AttributeError:只能对类datetime值使用.dt访问器

错误原因

你当前的代码逻辑有两个问题:

  1. 你在还没把Time列转换成datetime类型时就用了.dt.strftime,这直接触发了AttributeError——.dt访问器只支持已经是datetime64类型的列。
  2. 代码里做了多余的操作:先格式化字符串再转datetime,完全是绕弯路。

正确处理步骤

第一步:将字符串列转为datetime类型

Pandas的pd.to_datetime可以直接识别2021-11-10 00:00:00 UTC这种带时区后缀的格式,直接转换即可:

df['Time'] = pd.to_datetime(df['Time'])

如果列里存在无效的日期字符串,可以添加errors='coerce'参数把无效值转为NaT(缺失的datetime值):

df['Time'] = pd.to_datetime(df['Time'], errors='coerce')

第二步:提取日期部分转为目标格式

如果你需要的是YYYY-MM-DD格式的字符串:

df['Time'] = df['Time'].dt.strftime('%Y-%m-%d')

如果想要保留datetime.date类型的对象(而非字符串),可以直接用:

df['Time'] = df['Time'].dt.date

完整示例代码

# 先转datetime类型
df['Time'] = pd.to_datetime(df['Time'])
# 再转成目标日期格式
df['Time'] = df['Time'].dt.strftime('%Y-%m-%d')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:10:40