You need to enable JavaScript to run this app. Python如何迭代读取Excel多表并按日期列表替换列名后保存
优惠活动
大模型
产品
解决方案
定价
更多

Python如何迭代读取Excel多表并按日期列表替换列名后保存

基于pandas的Excel多工作表批量列名替换实现方法
  • 适配场景:源文件data.xlsx包含多个结构完全一致的工作表,所有工作表原始列固定为['ISIN', 'Coupon', 'Issue Date', 'Maturity Date']
  • 核心规则:按工作表默认读取顺序,逐表将ISIN列名替换为date_list中同序号的元素,其余列名保持不变,最终将修改后的内容输出为独立的Excel文件,不修改源文件

完整可运行实现代码

import pandas as pd

# 读取源文件的所有工作表信息
src_xls = pd.ExcelFile('data.xlsx')
all_sheets = src_xls.sheet_names
# 替换用的列名序列,使用时替换为完整的、长度与工作表数匹配的列表
date_list = ['2021-01', '2021-02', '2021-03']
# 存储处理完成的工作表内容
sheet_container = {}

# 逐表处理
for sheet_idx, sheet_name in enumerate(all_sheets):
    # 读取当前工作表数据
    df = pd.read_excel('data.xlsx', sheet_name=sheet_name)
    # 仅替换ISIN列名,其余列保持原有名称
    df = df.rename(columns={'ISIN': date_list[sheet_idx]})
    sheet_container[sheet_name] = df

# 将所有处理后的工作表写入新文件
with pd.ExcelWriter('processed_result.xlsx') as writer:
    for target_sheet, df_data in sheet_container.items():
        # index=False 避免把pandas的行索引当成额外列写入文件
        df_data.to_excel(writer, sheet_name=target_sheet, index=False)

实现逻辑说明

  • 借助enumerate同时获取工作表的顺序索引,保证每个工作表和date_list的元素严格按顺序对应:sheet1对应列表第1个元素2021-01,sheet2对应列表第2个元素2021-02,完全符合预期输出结构
  • 列名替换操作仅作用于ISIN列,不会改动其他列的原有命名
  • 所有数据处理环节在内存中完成,全程不修改原始data.xlsx文件,避免误操作损坏源数据
  • 写入时关闭默认的索引导出,输出文件结构和源文件保持一致,无冗余列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 18:06:04