Python批量读取多Excel文件并归一化数据至数组的优化方法问询
解决方案
可以通过批量读取文件夹内的Excel文件、同时完成指定单元格数据提取与归一化操作来简化流程。以下是具体实现步骤:
1. 导入所需库
import pandas as pd import numpy as np import os from glob import glob
2. 配置基础参数
# Excel文件所在文件夹路径,按需修改 folder_path = "./your_excel_directory" # 指定要读取的单元格范围(示例为A1至A4,对应每个文件的4个数据点) target_cells = "A1:A4"
3. 批量处理文件与归一化
遍历文件夹内所有xlsx文件,读取指定单元格数据并完成归一化(归一至1即每个数据点除以该文件数据的最大值):
normalized_list = [] # 获取文件夹内所有xlsx文件路径 excel_files = glob(os.path.join(folder_path, "*.xlsx")) for file in excel_files: # 读取指定单元格范围的数据,忽略表头 df = pd.read_excel(file, usecols=target_cells, header=None) # 转换为一维numpy数组 raw_data = df.values.flatten() # 执行归一化至1的操作 normalized_data = raw_data / raw_data.max() # 将结果加入列表 normalized_list.append(normalized_data) # 转换为最终的二维numpy数组 final_array = np.array(normalized_list)
补充说明
- 若目标单元格非连续范围,可通过
usecols指定列名或索引(如usecols=["A", "C"]),或结合skiprows/nrows精确控制读取区域。 - 若需全局归一化(所有文件数据统一按全局最大值缩放),可先收集所有原始数据,计算全局最大值后再批量完成归一化。
内容的提问来源于stack exchange,提问作者alb
相关产品推荐
相关产品推荐

