pandas索引上方添加文本后to_excel写入Excel不显示如何解决
问题根因
rename_axis(axis=1)设置的是DataFrame的列轴名称,pandas终端打印时会把这个名称渲染在列名上方,但to_excel()方法默认不会把列轴名称写入Excel文件:默认导出逻辑会直接从列名、索引名所在行开始写入数据,跳过轴名称的占位位置,因此导出后看不到这段自定义文本。
实现方法
推荐用偏移写入位置+手动补标题的方案,完全不改动原有DataFrame结构,导出格式100%匹配需求:
import pandas as pd # 先完成原有索引设置逻辑 df1 = df1.set_index('Status') # 导出时空出第一行写标题,数据从第二行开始写入 with pd.ExcelWriter('backup_data.xlsx', engine='openpyxl') as writer: # startrow=1 代表跳过第1行(Excel行号从0开始计数) df1.to_excel(writer, sheet_name='备份统计', startrow=1) # 在A1单元格写入目标标题 writer.sheets['备份统计']['A1'] = 'Complete Data Backup'
如果不想额外操作工作表对象,也可以通过多级列名的方式实现,不过格式会有细微差别:
df1 = df1.set_index('Status') # 给列增加一级顶层表头 df1.columns = pd.MultiIndex.from_product([['Complete Data Backup'], df1.columns]) df1.to_excel('backup_data.xlsx')
这种方式导出后,顶层标题会以合并单元格的形式展示在列上方,不会和索引名Status在同一列的顶部位置,适合对格式要求不严格的场景。
内容的提问来源于stack exchange,提问作者Abhinav
相关产品推荐
相关产品推荐

