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

使用Pandas读取Excel文件时出现Column1 KeyError错误求助

解决Pandas读取Excel的KeyError问题

错误根源

你读取Excel时设置了header=None,这会让Pandas将第一行视为数据行,自动给列分配0、1、2...的整数索引,而非你代码里用的Column1这类字符串列名,所以访问df['Column1']会触发KeyError。

两种修复方案

  • 方案1:自动识别表头
    如果你的Excel文件第一行就是列名(包含Column1、Column23等),读取时移除header=None参数,让Pandas自动把第一行作为列名:

    file_path = 'DA_Spreadsheet.xlsx'
    # 去掉header=None,默认读取第一行为表头
    df = pd.read_excel(file_path, sheet_name=0)
    
  • 方案2:手动指定列名
    如果Excel没有表头行,读取后手动给列设置名称(注意列名数量要和Excel列数匹配):

    file_path = 'DA_Spreadsheet.xlsx'
    df = pd.read_excel(file_path, sheet_name=0, header=None)
    # 按Excel列的顺序设置列名
    df.columns = ['Column1', 'Column2', ..., 'Column23', ...]
    

额外注意点

你的过滤逻辑还有两处问题:

  1. 列名df['Column23.date()']明显错误,应该是df['Column23']
  2. 日期条件> datetime.today().date()且<= datetime.today().date()逻辑矛盾,需根据实际需求调整,比如改为匹配当天日期:df['Column23'] == datetime.today().date(),同时注意每个条件要用括号包裹,避免运算符优先级错误:
filtered_df = df[
    (df['Column1'] == 'a') &
    (df['Column23'] == datetime.today().date())
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:22:27