如何为Pandas DataFrame添加自定义标题以支持Excel、PDF导出展示
Pandas DataFrame 添加全局顶部标题导出方案
Pandas DataFrame 本身没有内置存储全局标题的属性,要实现导出Excel/PDF时展示顶部标题,不需要修改DataFrame的原始数据结构,在导出环节单独处理标题写入即可。
场景1:导出到Excel Sheet 展示标题
使用openpyxl作为导出引擎,预留顶部行写入标题即可,示例代码如下:
import pandas as pd from openpyxl.styles import Font # 原始数据 df = pd.DataFrame({ 'A':list('abcdef'), 'B':[4,5,4,5,5,4], 'C':[7,8,9,4,2,3], 'D':[1,3,5,7,1,0], 'E':[5,3,6,9,2,4], 'F':list('aaabbb') }) title = 'The sales' # 导出Excel with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer: # startrow=2 代表数据从第3行开始写入,预留前2行位置放标题 df.to_excel(writer, sheet_name='数据页', startrow=2, index=False) worksheet = writer.sheets['数据页'] # 在第1行第1列写入标题 worksheet.cell(row=1, column=1, value=title) # 可选配置:给标题设置加粗、加大字号样式 worksheet.cell(row=1, column=1).font = Font(bold=True, size=14)
场景2:导出到PDF 展示标题
最简便的方式是先拼接带标题的HTML内容,再转成PDF,示例代码如下:
import pandas as pd import pdfkit # 原始数据 df = pd.DataFrame({ 'A':list('abcdef'), 'B':[4,5,4,5,5,4], 'C':[7,8,9,4,2,3], 'D':[1,3,5,7,1,0], 'E':[5,3,6,9,2,4], 'F':list('aaabbb') }) title = 'The sales' # 拼接带标题的HTML字符串 html_content = f''' <h2>{title}</h2> {df.to_html(index=False)} ''' # 导出为PDF,需提前安装wkhtmltopdf依赖工具 pdfkit.from_string(html_content, 'output.pdf')
如果习惯用LaTeX排版,也可以调用df.to_latex(caption=title)生成带标题的LaTeX代码后编译为PDF。
场景3:控制台/Jupyter 预览带标题
如果仅需要本地预览带标题的表格,不需要导出文件,可以直接用以下方式:
title = 'The sales' # 控制台打印 print(title) print(df) # Jupyter环境渲染带标题的交互表格 df.style.set_caption(title)
内容的提问来源于stack exchange,提问作者Gathide
相关产品推荐
相关产品推荐

