You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过循环将每个文件存入不同DataFrame以简化批量文件处理流程

可行实现方案

推荐使用字典存储不同文件对应的DataFrame,无需提前定义变量名,后续新增文件不需要调整核心逻辑,能最大程度简化处理流程,示例代码如下:

import pandas as pd
import os

# 配置文件存储目录
inPath = "替换为你的文件所在目录路径/"
# 筛选目录下所有xlsx文件,可按自己的命名规则调整筛选条件
filelist = [f for f in os.listdir(inPath) if f.endswith(".xlsx")]

# 初始化字典,key为自定义的DataFrame名称,value为读取后的DataFrame对象
df_container = {}
for file in filelist:
    full_file_path = os.path.join(inPath, file)
    # 以去掉后缀的文件名作为字典key,也可自定义命名规则
    df_name = file.rsplit(".", 1)[0]
    df_container[df_name] = pd.read_excel(full_file_path, sheet_name=0, dtype="object")

后续需要调用某一个文件的DataFrame时,直接用df_container["对应的文件名"]即可,也可以直接遍历字典做批量处理。

如果确实需要生成独立的变量名存储DataFrame,可以用globals()动态生成变量,示例如下:

import pandas as pd
import os

inPath = "替换为你的文件所在目录路径/"
filelist = [f for f in os.listdir(inPath) if f.endswith(".xlsx")]
# 按顺序定义要生成的变量名,注意这里要写字符串格式
OUT_FILE = ["a", "b"]

for idx, file in enumerate(filelist):
    full_file_path = os.path.join(inPath, file)
    globals()[OUT_FILE[idx]] = pd.read_excel(full_file_path, sheet_name=0, dtype="object")

原有代码错误说明

  • 缩进错误:for循环行前有多余空格,Python对缩进语法要求严格
  • pd.read_excel参数传递错误:第二个参数为工作表名(sheet_name),不能直接作为赋值的变量名使用,原有写法逻辑完全错误
  • 变量未定义:OUT_FILE=[a,b]中的a、b如果未提前定义,会直接抛出变量未声明错误
  • 路径写死:循环中固定读取inPath+"xxx.xlsx",不会遍历读取filelist中的不同文件
  • 手动维护计数变量冗余:可以用enumerate直接获取循环下标,不需要手动累加计数

内容的提问来源于stack exchange,提问作者Sinner Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:18:02