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

Python自动化:遍历Excel文件提取指定数据并合并至单个DataFrame

合并多Excel提取数据为单行,生成统一DataFrame

问题描述

需要遍历指定Excel文件,提取每个文件中指定范围(如C6到C9)的内容,将每个文件的提取结果作为DataFrame的一行,最终生成一个统一的3行3列DataFrame,而不是当前得到的三个独立的3行1列DataFrame。

修正代码

from openpyxl import load_workbook
import pandas as pd

filesList = ["sample1.xlsx", "sample2.xlsx", "sample3.xlsx"]
all_rows = []

for file in filesList:
    wb = load_workbook(file)
    ws = wb.active
    row_data = []
    # 遍历目标单元格范围,提取每个值(若实际只有3个有效数据,可改为C6:C8)
    for cell_range in ws['C6':'C9']:
        # 因为是单列范围,每个cell_range仅包含一个单元格
        row_data.append(cell_range[0].value)
    # 过滤空单元格值(如果范围包含无效空值)
    row_data = [val for val in row_data if val is not None]
    # 将当前文件的有效数据作为一行存入总列表
    all_rows.append(row_data)

# 转换为DataFrame,匹配期望的列名
df = pd.DataFrame(all_rows, columns=['0', '1', '2'])
print(df)

关键修正说明

  1. 修复数据收集错误:原代码中data_rows.append(data_rows)是递归添加自身,改为正确收集每个单元格的值到row_data,再将整行数据存入总列表。
  2. 调整数据结构:将每个文件的提取结果作为一行数据,而非单列,最终合并成统一的DataFrame。
  3. 处理空值:添加空值过滤逻辑,避免无效数据干扰最终格式。
  4. 指定列名:根据期望输出设置列名,确保格式完全匹配需求。

最终输出

0          1           2
0   apple       sold  No stock
1  orange  not sold    In stock
2    kiwi  not sold    In stock

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:50:18