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

Pandas读取Excel触发OverflowError: date value out of range求助

解决Pandas读取Excel时的OverflowError: date value out of range问题

这个报错是因为openpyxl解析Excel日期时,遇到了超出Python datetime模块支持范围的日期值——哪怕单元格显示为ISO格式,底层存储的Excel日期序列号可能异常(比如早于公元1年1月1日,或远超出常规时间范围的数值)。以下是几种可行的解决方法:

  • 指定日期列为字符串读取
    直接将疑似存在问题的日期列按字符串类型读取,跳过自动解析步骤:

    import pandas as pd
    # 替换'date_col'为你实际的日期列名
    df = pd.read_excel('./Inputs/fileXXX.xlsx', dtype={'date_col': str})
    

    如果不确定具体哪列异常,也可以全局按字符串读取所有列:

    df = pd.read_excel('./Inputs/fileXXX.xlsx', dtype=str)
    

    读取完成后,再手动处理日期列,用pd.to_datetime将有效日期转换为datetime类型,异常值转为NaT:

    df['date_col'] = pd.to_datetime(df['date_col'], errors='coerce')
    
  • 切换至xlrd引擎读取
    Pandas默认用openpyxl处理xlsx文件,换成xlrd引擎可能避开这个解析问题(注意xlrd 2.0及以上版本仅支持xls格式,若你的文件是xlsx,需安装xlrd 1.2.0版本):

    import pandas as pd
    df = pd.read_excel('./Inputs/fileXXX.xlsx', engine='xlrd')
    

    若提示缺少xlrd,执行安装命令:pip install xlrd==1.2.0

  • 预处理Excel文件修复异常日期
    直接打开Excel文件排查并修复异常值:

    1. 定位日期列,筛选出超出合理时间范围的单元格(比如1900年之前、2100年之后的异常日期)
    2. 将这些异常值替换为合理日期,或清空单元格
    3. 保存文件后再用Pandas读取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:24:23