如何将多个Excel文件分别读取为不同的Pandas DataFrame对象
批量读取Excel文件为Pandas DataFrame实现方案
原有代码问题
- 定义了Excel存储路径变量
path但未实际使用,glob.glob('*.xls')仅会检索当前脚本运行目录下的xls文件,不会检索你指定的目标目录 - 存储DataFrame的容器
df未预先初始化,直接赋值df[f]会触发变量未定义报错 - 路径格式存在书写错误,Windows盘符后缺少反斜杠
修复后实现方案
推荐使用字典存储所有DataFrame,键为文件名、值为对应数据集,后续批量处理、单独调用都更方便:
import glob import pandas as pd # 修正路径格式,指向目标文件夹 path = r"C:\users\me\desktop\ExcelData" # 匹配目标文件夹下所有xls格式文件 files = glob.glob(path + "/*.xls") # 初始化字典作为存储容器 df_container = {} for file_path in files: # 提取不带路径和后缀的文件名作为字典key,可根据需求自定义命名规则 file_name = file_path.split("\\")[-1].rstrip(".xls") df_container[file_name] = pd.read_excel(file_path)
如果需要生成独立的DataFrame变量而非使用字典存储,可以通过全局变量动态生成:
import glob import pandas as pd path = r"C:\users\me\desktop\ExcelData" files = glob.glob(path + "/*.xls") for file_path in files: file_name = file_path.split("\\")[-1].rstrip(".xls") # 动态生成变量,文件名为sales.xls则对应变量名为df_sales globals()[f"df_{file_name}"] = pd.read_excel(file_path)
提示:优先使用字典存储方案,可避免全局变量污染,也更方便对所有数据集做统一批量操作。
内容的提问来源于stack exchange,提问作者user9003011
相关产品推荐
相关产品推荐

