使用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', ...]
额外注意点
你的过滤逻辑还有两处问题:
- 列名
df['Column23.date()']明显错误,应该是df['Column23'] - 日期条件
> 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
相关产品推荐
相关产品推荐

