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

Python遍历文件夹读取多份Excel仅能获取最后一份数据如何解决

问题原因
  • 现有代码的循环逻辑中,每次读取Excel文件后都将结果赋值给同一个df变量,前两次读取的内容会被后续写入的值覆盖,循环结束后df仅保留最后一个文件test_3d2.xlsx的数据
  • 你没有在代码中定义过名为test_3d的变量,直接调用该名称必然会触发NameError报错
解决方案

你可以用字典存储所有文件的DataFrame,键设置为文件名(或去掉后缀的简化文件名),值为对应文件读取得到的DataFrame,修改后代码如下:

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
import os
import pandas as pd
import math

folder = r'C:\Users\Denny\Desktop\Work\test_read'
files = os.listdir(folder)
# 初始化空字典存储所有Excel数据
dfs = {}

for file in files:
    if file.endswith('.xlsx'):
        # 去掉.xlsx后缀作为字典的键,方便后续调用
        file_key = file.removesuffix('.xlsx')
        dfs[file_key] = pd.read_excel(os.path.join(folder,file), header = None, skiprows=[0,1])

数据调用方式

  • 获取test_3d.xlsx的数据:执行print(dfs['test_3d'])
  • 获取test_3d1.xlsx的数据:执行print(dfs['test_3d1'])
  • 获取test_3d2.xlsx的数据:执行print(dfs['test_3d2'])
  • 遍历所有文件的数据可使用如下代码:
for file_name, df in dfs.items():
    print(f"====={file_name} 文件数据预览=====")
    print(df.head())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:15:02