You need to enable JavaScript to run this app. 如何将已生成的.xlsx文件列表读取并拼接为单个pandas DataFrame?
优惠活动
大模型
产品
解决方案
定价
更多

如何将已生成的.xlsx文件列表读取并拼接为单个pandas DataFrame?

多个xlsx文件拼接为单个DataFrame实现方案

前置依赖

首先确保安装pandas和xlsx读取依赖,未安装可执行以下命令:
pip install pandas openpyxl

完整实现代码

将你现有代码和读取拼接逻辑整合如下:

from os import listdir
import pandas as pd

working_directory = 'N:/path to files'

def find_xlsx_filenames(path_to_dir, suffix=".xlsx"):
        """
        返回指定目录path_to_dir下所有后缀为给定suffix(默认值为".xlsx")的文件名字符串列表。
        """
        filenames = listdir(path_to_dir)
        return[filename for filename in filenames if filename.endswith(suffix)]
    
# 生成文件夹下所有xlsx文件的列表
filenames = find_xlsx_filenames(working_directory) 

# 读取所有文件并存入DataFrame列表
df_list = []
for filename in filenames:
    # 拼接文件的完整路径,避免读取时找不到文件
    full_path = f"{working_directory}/{filename}"
    # 读取xlsx文件,默认读取第一个sheet,第一行为表头
    df = pd.read_excel(full_path, engine="openpyxl")
    # 可选:新增一列标记该行数据来源的文件名,方便后续核对
    # df["source_file"] = filename
    df_list.append(df)

# 拼接所有DataFrame为一个,ignore_index=True用于重置全局索引,避免索引重复
full_df = pd.concat(df_list, ignore_index=True)

# 可以打印查看拼接后的结果
print(full_df.head())
# 如需导出为单个Excel可执行:
# full_df.to_excel("合并后的文件.xlsx", index=False, engine="openpyxl")

常见参数调整说明

  • 若你的Excel表头不在第一行,可在pd.read_excel中添加header=N参数,N为表头实际所在行的序号(从0开始计数)
  • 若需要读取指定Sheet,可添加sheet_name参数,传入Sheet名称或序号(从0开始计数)
  • 若需要跳过文件开头的无效行,可添加skiprows=N参数,N为需要跳过的行数
  • 若不同文件的列名不一致,拼接后缺失的列会自动填充为空值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 08:45:06