如何用pandas筛选名称含'BOOKING'的Excel工作表并合并数据
合并Excel指定工作表解决方案
实现逻辑
- 使用
pd.ExcelFile打开目标Excel文件,通过sheet_names属性获取全部工作表名称 - 筛选出名称中包含
BOOKING的工作表,可根据需求调整匹配规则 - 遍历读取所有符合条件的工作表,存入DataFrame列表后统一合并
可运行代码
import pandas as pd file = 'test.xlsx' # 打开Excel文件 excel_file = pd.ExcelFile(file) # 筛选名称包含BOOKING的工作表,若需要不区分大小写可改为 if 'BOOKING' in sheet.upper() target_sheets = [sheet for sheet in excel_file.sheet_names if 'BOOKING' in sheet] # 批量读取工作表 df_list = [] for sheet_name in target_sheets: df = pd.read_excel(excel_file, sheet_name=sheet_name) df_list.append(df) # 合并所有数据,ignore_index重置全局行索引 merged_df = pd.concat(df_list, ignore_index=True) print(merged_df)
注意事项
- 原有代码存在变量名大小写不匹配问题,定义的变量为小写
file,调用时误写为大写File,上述代码已修正该错误- 如果不同工作表的列结构不一致,合并时会自动对齐列名,缺失位置填充NaN值
- 若Excel文件体积过大,可在
read_excel中添加usecols参数指定需要读取的列,降低内存占用
内容的提问来源于stack exchange,提问作者Trunks
相关产品推荐
相关产品推荐

