使用Python遍历Excel工作表:批量提取指定列/行数据
处理多工作表Excel文件提取指定行数据的方案
针对你的大型Excel文件(50个工作表),推荐用字典统一存储数据来避免变量泛滥,比创建50个单独变量更易管理。以下是具体实现:
1. 依赖安装
先确保安装了必要的库:
pip install pandas openpyxl
如果是.xls格式,需要安装旧版xlrd:
pip install xlrd==1.2.0
2. 统一存储到字典(推荐)
读取所有工作表的第3行数据,存入字典,键为工作表名称,值为对应行的数据集:
import pandas as pd # 加载Excel文件,避免重复读取提升效率 excel_file = pd.ExcelFile("你的文件路径.xlsx") sheet_names = excel_file.sheet_names # 初始化字典存储数据 sheet_row_dict = {} for sheet_name in sheet_names: # 仅读取第3行(注意:pandas行索引从0开始,第3行对应skiprows=2,nrows=1) row_df = excel_file.parse(sheet_name, skiprows=2, nrows=1) # 转为Series方便后续取值 sheet_row_dict[sheet_name] = row_df.squeeze() # 示例:访问"消费者1"工作表的第3行数据 # print(sheet_row_dict["消费者1"])
3. 拆分为单独变量(不推荐,但满足需求)
如果一定要拆成50个变量,可以从字典中动态生成:
# 按工作表顺序生成变量row_0到row_49 for idx, sheet_name in enumerate(sheet_names): globals()[f"row_{idx}"] = sheet_row_dict[sheet_name] # 示例:访问第一个工作表对应的变量 # print(row_0)
注意事项
- 用
pd.ExcelFile加载文件比多次调用pd.read_excel更高效,适合大型文件 - 确认第3行的定位:如果工作表有表头,需调整
skiprows参数(比如表头占1行,数据第3行就是skiprows=2) - 字典存储的方式更易维护,后续筛选、遍历数据都更方便
内容的提问来源于stack exchange,提问作者Tams
相关产品推荐
相关产品推荐

