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

提取多个Excel文件指定行后保存结果异常求助

问题分析与解决方案

你的代码核心问题在于保存位置错误,循环内每次执行data.to_excel()会把单个Excel文件的内容覆盖到输出文件,而不是保存汇总后的aggregate数据。另外append方法已被弃用,推荐使用更稳定的concat。

修正后的代码

import pandas as pd
import os

# 初始化存储列表,用来收集所有要汇总的行
rows_to_aggregate = []
dir_path = "/Users/gulfcarbon2/Downloads/Modis/absorption file/"

# 遍历目录下的所有Excel文件
for file in os.listdir(dir_path):
    if file.endswith(".xlsx"):
        # 安全拼接文件路径
        file_path = os.path.join(dir_path, file)
        # 读取Excel文件
        data = pd.read_excel(file_path)
        # 提取第二行(iloc[1]),转置后加入列表
        row2 = pd.DataFrame(data.iloc[1]).transpose()
        rows_to_aggregate.append(row2)
        print(f"已处理文件: {file}")

# 一次性拼接所有行
aggregate = pd.concat(rows_to_aggregate, ignore_index=True)
# 保存汇总结果到Excel
aggregate.to_excel(os.path.join(dir_path, "aggregate1.xlsx"), index=False)
# 打印前5行验证
print(aggregate.head(5))

关键修改点

  • 移出保存语句:把to_excel放到循环外,确保保存的是所有行汇总后的完整数据,而非单个文件内容。
  • 改用concat拼接:替换弃用的append,用concat批量拼接数据,性能更优且避免版本兼容问题。
  • 路径安全处理:用os.path.join拼接路径,避免因手动拼接出现的路径分隔符错误。
  • ignore_index=True:重置汇总后的索引,避免原文件索引重复导致的混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:50:30