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

Python处理25-Jan-24格式日期报错的解决方案咨询

Pandas日期解析问题的解决方法

针对你的EXPIRY_DT列(格式示例:25-Jan-24)出现的解析警告与错误,提供以下几种实用解决方案:

1. 清理数据后指定格式解析

错误提示unconverted data remains: "24"大概率是日期字符串存在多余空白或隐藏字符。先清理数据再解析:

# 去除字符串两端的空白字符
df_filtered['EXPIRY_DT'] = df_filtered['EXPIRY_DT'].str.strip()
# 用指定格式解析
df_filtered['EXPIRY_DT'] = pd.to_datetime(df_filtered['EXPIRY_DT'], format='%d-%b-%y')

2. 指定英文locale适配月份缩写

若系统默认语言不是英文,%b无法识别Jan这类英文月份缩写,需先设置locale:

import locale
# 根据系统设置合适的英文locale,Windows可用'English_US',Linux/macOS用'en_US.UTF-8'
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
# 执行日期解析
df_filtered['EXPIRY_DT'] = pd.to_datetime(df_filtered['EXPIRY_DT'], format='%d-%b-%y')

3. 用mixed格式自动推断(Pandas 2.0+)

如果不想纠结格式细节,Pandas 2.0及以上版本支持format='mixed',配合dayfirst=True确保日在前的解析逻辑:

df_filtered['EXPIRY_DT'] = pd.to_datetime(df_filtered['EXPIRY_DT'], format='mixed', dayfirst=True)

4. 忽略警告用默认解析(兼容老版本)

若使用低版本Pandas,可直接用默认的dateutil解析,添加errors='coerce'将无效日期转为NaT,同时可选择性忽略警告:

import warnings
# 忽略日期解析的UserWarning
warnings.filterwarnings("ignore", category=UserWarning)
# 解析日期
df_filtered['EXPIRY_DT'] = pd.to_datetime(df_filtered['EXPIRY_DT'], errors='coerce')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:52:35