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

使用pd.to_datetime转换19-SEP-22日期报错,请求排查原因

问题排查与解决方案

你的格式符逻辑本身是对的——%d对应日、%b对应英文月份缩写、%y对应两位年份,报错的核心原因是Python环境的区域设置(locale)不是英文,导致无法识别SEP这种英文月份缩写。

解决方法1:指定英文区域解析

在pd.to_datetime中通过locale参数指定英文区域,让函数能识别英文月份缩写:

import pandas as pd
import locale

# 设置英文区域(不同系统可能略有差异,Windows可用'English_US')
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')

df['date'] = pd.to_datetime(df.date, format='%d-%b-%y')
df['date'] = df['date'].dt.strftime('%d/%m/%Y')

如果运行时提示locale不存在,可以试试其他英文区域标识,比如'en_GB.UTF-8'(英式英文),Windows系统通常用'English_US'或'en-US'。

解决方法2:不依赖locale的兼容写法

如果不想折腾区域设置,可以用dateutil.parser来自动识别日期格式(需要先安装python-dateutil:pip install python-dateutil):

from dateutil.parser import parse
import pandas as pd

df['date'] = df['date'].apply(lambda x: parse(x))
df['date'] = df['date'].dt.strftime('%d/%m/%Y')

这个方法不需要指定格式符,能自动识别多种日期格式,适合日期格式不统一的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:04:57