如何使用Pandas选取Excel文件中名称包含'ITD_'的工作表
实现Pandas按前缀匹配读取Excel工作表的方案
pandas的pd.read_excel()原生不支持直接传入匹配规则选择工作表,你可以通过以下步骤实现需求:
- 第一步:加载Excel文件元信息,筛选符合要求的工作表名
无需读取全量文件数据,仅通过pd.ExcelFile获取工作表列表即可完成筛选:# 初始化ExcelFile对象,仅读取文件结构信息 excel_file = pd.ExcelFile(path) # 筛选所有以ITD_为前缀的工作表,若需要匹配包含ITD_的规则可替换为 'ITD_' in sheet target_sheets = [sheet for sheet in excel_file.sheet_names if sheet.startswith('ITD_')] - 第二步:读取目标工作表内容
直接把筛选得到的工作表名列表传给sheet_name参数即可:# 读取所有匹配的工作表,返回结果为字典:键是工作表名,值是对应DataFrame sheet_data_dict = pd.read_excel(excel_file, sheet_name=target_sheets) # 如果确认每个文件仅有1个符合要求的工作表,可直接取出单个DataFrame if target_sheets: df = sheet_data_dict[target_sheets[0]]
注意:你之前尝试的
contains()是pandas Series对象的字符串匹配方法,不能直接传入sheet_name参数使用,必须先自行完成工作表名的筛选逻辑。
内容的提问来源于stack exchange,提问作者Nhyi
相关产品推荐
相关产品推荐

