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

如何使用Pandas将DataFrame列的name属性写入Excel?

解决pandas写入Excel时列name属性无法保存的问题

针对你遇到的问题——使用df.to_excel()时,索引的name(class1)能正常写入,但列的name(class2)无法导出到Excel,这里提供两种可行的解决方案:

方法一:手动写入列名标题(保留原DataFrame结构)

通过ExcelWriter直接操作工作表,先写入列的name到指定单元格,再从下一行开始写入DataFrame,既能保留原数据结构,又能完整导出索引名和列名:

import pandas as pd

df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})
df.index.name = 'class1'
df.columns.name = 'class2'

with pd.ExcelWriter('output.xlsx') as writer:
    # 获取工作表对象
    worksheet = writer.sheets['Sheet1']
    # 将列的name写入A1单元格
    worksheet.write('A1', df.columns.name)
    # 从第2行(索引为1)开始写入DataFrame,保留索引
    df.to_excel(writer, startrow=1, index=True)

方法二:将列名转为MultiIndex(自动导出列name)

如果可以接受多级表头的形式,把列的name作为MultiIndex的第一级,to_excel会自动识别并导出这个层级:

import pandas as pd

df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})
df.index.name = 'class1'
df.columns.name = 'class2'

# 把列的name整合为MultiIndex的第一级
df.columns = pd.MultiIndex.from_tuples([(df.columns.name, col) for col in df.columns])
# 写入Excel,索引保持开启
df.to_excel('output.xlsx', index=True)

两种方法的区别:

  • 方法一更轻量化,不修改原DataFrame结构,适合仅需添加列名标题的场景;
  • 方法二会改变列的结构,生成多级表头,适合需要明确层级关系的报表需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:55:20