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

如何使用Pandas DataFrame为已有数据的Excel添加额外索引或列

实现方法

当然可以实现,下面提供两种方案来达到你想要的效果:

方案1:修改DataFrame结构(通过多层索引/转置索引)

如果希望通过DataFrame本身的结构来实现带额外表头和索引列的效果,可以使用**多层列索引(MultiIndex)**和将行索引转为列的方式:

import pandas as pd

# 创建原始DataFrame
df = pd.DataFrame([['a', 'b'], ['c', 'd']],
                  index=['row 1', 'row 2'],
                  columns=['col 1', 'col 2'])

# 将行索引转为普通列,并命名为"Index"
df = df.reset_index().rename(columns={'index': 'Index'})

# 给列设置多层索引,上层为"Header"
df.columns = pd.MultiIndex.from_tuples([('Header', col) if col != 'Index' else ('', col) for col in df.columns])

# 写入Excel
writer = pd.ExcelWriter('pandas_custom.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
writer.close()

该方案通过DataFrame的多层索引实现上层表头,同时保留单独的索引列,让Excel表格结构与期望完全一致。

方案2:使用XlsxWriter手动设置格式(适合保留原始DataFrame结构的场景)

如果不想改动原始DataFrame的结构,可以利用XlsxWriter的单元格合并和格式设置功能,手动添加额外的表头和索引列标题:

import pandas as pd

# 原始DataFrame代码
df = pd.DataFrame([['a', 'b'], ['c', 'd']],
                  index=['row 1', 'row 2'],
                  columns=['col 1', 'col 2'])

writer = pd.ExcelWriter('pandas_format.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', startrow=1, startcol=1)  # 预留行和列用于添加额外内容

# 获取工作簿和工作表对象
workbook = writer.book
worksheet = writer.sheets['Sheet1']

# 添加左上角的索引标题"Index"
worksheet.write('A2', 'Index')

# 合并单元格添加上层表头"Header"
worksheet.merge_range('B1:C1', 'Header', workbook.add_format({'align': 'center'}))

# 可选:设置格式让表格更美观
header_format = workbook.add_format({'bold': True, 'align': 'center', 'border': 1})
cell_format = workbook.add_format({'border': 1})

# 应用格式到表头
for col_num, value in enumerate(df.columns.values, 1):
    worksheet.write(1, col_num + 0, value, header_format)

# 应用格式到数据行
for row_num, row_data in enumerate(df.values, 2):
    worksheet.write(row_num, 0, df.index[row_num-2], cell_format)
    for col_num, value in enumerate(row_data, 1):
        worksheet.write(row_num, col_num, value, cell_format)

writer.close()

该方案通过调整写入位置,手动添加额外标题并合并单元格,完全匹配你期望的视觉效果,同时保留原始DataFrame的结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:55:25