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

如何用Python Pandas将DataFrame生成PDF文件?求替代方法

将Pandas DataFrame导出为PDF的可行方案

Pandas确实没有内置的DataFrame转PDF方法,下面给你几个实用的替代方案:

方案一:用Matplotlib绘制表格后导出PDF

Matplotlib可以把DataFrame渲染成可视化表格,再保存为PDF文件,步骤简单,适合快速生成:

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_csv('/Users/ashy/Downloads/weather_data.csv')

# 创建画布和轴对象
fig, ax = plt.subplots(figsize=(10, 6))
# 隐藏轴的边框和刻度
ax.axis('off')
# 生成表格
table = ax.table(cellText=df.values, colLabels=df.columns, loc='center')

# 调整表格样式(可选)
table.auto_set_font_size(False)
table.set_fontsize(10)
table.scale(1.2, 1.2)

# 保存为PDF
plt.savefig('/Users/ashy/Downloads/weather_data.pdf', bbox_inches='tight', dpi=300)
plt.close()

方案二:通过HTML中转,用pdfkit导出PDF

先把DataFrame转成HTML格式,再用pdfkit把HTML转成PDF,这种方法能保留DataFrame的原有样式,需要先安装依赖:

pip install pdfkit
# 额外安装wkhtmltopdf:Mac用brew install wkhtmltopdf,Windows直接官网下载安装包手动安装

代码示例:

import pandas as pd
import pdfkit

df = pd.read_csv('/Users/ashy/Downloads/weather_data.csv')
# 把DataFrame转为HTML(去掉索引列)
html_table = df.to_html(index=False)

# 导出为PDF
pdfkit.from_string(html_table, '/Users/ashy/Downloads/weather_data.pdf')

方案三:用ReportLab直接构建PDF表格

ReportLab是专业的PDF生成库,适合需要高度自定义表格样式(比如颜色、字体、边框)的场景:

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
from reportlab.lib import colors
import pandas as pd

df = pd.read_csv('/Users/ashy/Downloads/weather_data.csv')
# 把DataFrame转为包含表头的列表格式
data = [df.columns.tolist()] + df.values.tolist()

# 创建PDF文档对象
doc = SimpleDocTemplate('/Users/ashy/Downloads/weather_data.pdf', pagesize=letter)
# 创建表格对象
table = Table(data)

# 设置自定义表格样式(可选)
style = TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.grey),
    ('TEXTCOLOR', (0,0), (-1,0), colors.whitesmoke),
    ('ALIGN', (0,0), (-1,-1), 'CENTER'),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('BOTTOMPADDING', (0,0), (-1,0), 12),
    ('BACKGROUND', (0,1), (-1,-1), colors.beige),
    ('GRID', (0,0), (-1,-1), 1, colors.black)
])
table.setStyle(style)

# 构建并保存PDF
doc.build([table])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:45:34