循环批量读取Excel合并为DataFrame时传入read_excel参数不生效如何解决
问题解决方案
核心报错原因
你代码的问题是参数拼写错误,pandas 的 pd.read_excel 方法中指定读取列的参数为 usecols,你在代码中误写为 usecoles,多了一个字母 e,导致参数不识别触发报错。你提供的单文件示例代码同样存在该拼写错误,如果单文件实际运行正常,说明你真实测试时的单文件代码拼写正确,迁移到批量循环代码时出现了手误。
修正后可运行代码
import glob import pandas as pd # 提前初始化存储DataFrame的列表 excl_list = [] # 替换为你的目标目录实际路径 path = "你的目标目录路径" # 匹配目录下所有xls格式文件,如需兼容xlsx可修改匹配规则为 path + "/*.xls*" file_list = glob.glob(path + "/*.xls") for file in file_list: excl_list.append(pd.read_excel(file, usecols=['code','name','date','hours'], skiprows=[0,1,2,3,4,5,6,7])) excl_merged = pd.concat(excl_list, ignore_index=True)
其他可选排查项
如果修正拼写后仍有报错,可按以下顺序排查:
- 确认所有待读取的Excel文件都存在
code、name、date、hours四个列名,不存在缺列、列名拼写不一致的问题 - 确认目录下的文件后缀和匹配规则一致:如果存在
.xlsx格式文件,将glob的匹配规则改为path + "/*.xls*"即可同时匹配两种格式 - 确认循环执行前已经完成
excl_list = []的初始化操作,避免变量未定义报错
内容的提问来源于stack exchange,提问作者Bbamber
相关产品推荐
相关产品推荐

