📜  pdf 完整的统计表格 (1)

📅  最后修改于: 2023-12-03 14:45:06.771000             🧑  作者: Mango

生成完整的统计表格的 PDF

在开发数据报告或生成报表时,很常见的需求就是将这些数据展示成易于阅读的表格。我们可以通过使用 Python 的开源库来生成 PDF 格式的完整统计表格。

步骤

以下是生成 PDF 格式的完整统计表格的简单步骤:

  1. 安装依赖库 pandas, numpy, openpyxlfpdf
!pip install pandas numpy openpyxl fpdf
  1. 导入所需的库:
from fpdf import FPDF
import pandas as pd
import numpy as np
from openpyxl import Workbook
  1. 使用 pandas 将数据加载到 DataFrame 中:
df = pd.read_excel('data.xlsx')
  1. 对 DataFrame 进行必要的数据操作,例如过滤、选取行和列、合并等等:
df = df[df['year'] >= 2010]
df = df[['year', 'state', 'sales']]
df = df.groupby(['year', 'state']).sum()
  1. 将 DataFrame 转换成一个列表:
data = df.values.tolist()
  1. 创建 PDF 文件并设置必要的属性:
pdf = FPDF()
pdf.add_page()
pdf.set_font('Arial', 'B', 16)
pdf.cell(190, 10, 'Sales Report', ln=1, align='C')
  1. 根据数据创建表格,并将其添加到 PDF 文件:
pdf.set_font('Arial', '', 12)
col_width = pdf.w / 4.5
row_height = pdf.font_size * 1.5
for row in data:
    for datum in row:
        pdf.cell(col_width, row_height, str(datum), border=1)
    pdf.ln(row_height)

完整的代码如下:

from fpdf import FPDF
import pandas as pd
import numpy as np
from openpyxl import Workbook

df = pd.read_excel('data.xlsx')
df = df[df['year'] >= 2010]
df = df[['year', 'state', 'sales']]
df = df.groupby(['year', 'state']).sum()

data = df.values.tolist()

pdf = FPDF()
pdf.add_page()
pdf.set_font('Arial', 'B', 16)
pdf.cell(190, 10, 'Sales Report', ln=1, align='C')

pdf.set_font('Arial', '', 12)
col_width = pdf.w / 4.5
row_height = pdf.font_size * 1.5
for row in data:
    for datum in row:
        pdf.cell(col_width, row_height, str(datum), border=1)
    pdf.ln(row_height)

pdf.output('sales_report.pdf')
显示结果

使用以上代码将数据保存为 PDF 文件,您将获得类似下面的完整统计表格:

| Year | State | Sales | |------|-------|-------| | 2010 | CA | 26250 | | 2010 | NY | 22413 | | 2011 | CA | 31587 | | 2011 | NY | 23826 | | 2012 | CA | 36283 | | 2012 | NY | 25695 |

此表格将根据 "年份" 和 "州" 展示销售数据。

结论

生成 PDF 格式的完整统计表格可以帮助在数据报告或生成报表时更好地展示数据。可以使用 Python 的多个库来实现这个目的,本文将使用 pandasnumpyopenpyxlfpdf 库。