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

pandas转换dd-mmm-yy格式文本日期时调用.dt访问器报错

报错根因

AttributeError: Can only use .dt accessor with datetimelike values 的触发原因非常明确:pandas中的*.dt访问器仅支持datetime、timedelta类的时间类型Series*,你的date_text列是文本类型(object/string dtype),不支持.dt系列时间操作,直接调用必然触发报错。

修复步骤

你需要先将文本格式的日期列转换为pandas内置的datetime类型,再执行格式转换操作:

  1. 调用pd.to_datetime()完成文本到时间类型的转换,由于你的原始日期格式固定为dd-mmm-yy(例:01-Jun-22),显式指定匹配格式可以提升解析效率,同时避免自动识别的格式错误:
import pandas as pd

# 文本列转datetime类型
df['date_parsed'] = pd.to_datetime(df['date_text'], format='%d-%b-%y')
  1. 类型转换完成后,再调用.dt.strftime()输出你需要的dd/mmm/yy格式字符串:
df['new_date'] = df['date_parsed'].dt.strftime('%d/%b/%y')
异常处理补充

如果列中存在不符合规范的坏日期值,转换时可能报错,可以添加errors='coerce'参数,将无法解析的异常值统一转为空时间值NaT,避免流程中断:

df['date_parsed'] = pd.to_datetime(df['date_text'], format='%d-%b-%y', errors='coerce')

注意:strftime的作用是将datetime类型转为指定格式的字符串,无法直接作用在文本类型的列上;字符串转datetime类型需要用pd.to_datetime()完成,操作顺序不能搞反。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:24:11