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

如何通过目录内文件索引获取pandas读取的对应Excel数据并修复报错

问题修复方案

错误原因

你写的dfs['files[1]']将files[1]包裹在了引号中,相当于要从字典里查找键为字符串"files[1]"的数据,而你构建dfs字典时的键均为不带后缀的文件名,不存在该字符串键,因此触发报错。

修复方案

方案1:直接通过索引关联字典键

你只需先通过索引取出对应文件名,再去掉后缀匹配字典键即可,写法如下:

# 写法1:固定处理5个字符长度的.xlsx后缀
dfs[files[1][:-5]]

# 写法2:更通用的后缀处理,适配不同后缀长度
import os
dfs[os.path.splitext(files[1])[0]]

方案2:调整存储结构,直接支持索引调用

如果你高频使用索引取数,可直接将dfs改为列表结构,按文件列表顺序存储数据,后续调用更便捷:

import os
import pandas as pd

folder = r'C:\Users\Denny\Desktop\Work\test_read'
# 提前过滤仅保留xlsx文件
files = [f for f in os.listdir(folder) if f.endswith('.xlsx')]
files.sort() # 建议添加,保证不同环境下文件顺序稳定

dfs = []
for file in files:
    dfs.append(pd.read_excel(os.path.join(folder,file), header = None, skiprows=[0], usecols = "B:M"))

# 直接通过索引取对应文件的数据
dfs[1]

注意:os.listdir的返回顺序由操作系统文件系统规则决定,不保证默认按文件名排序,如需固定索引对应关系,一定要对files列表执行排序操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:48:03