介绍
Pandas非常善于处理大量数据并在多个文本和可视化表示中对其进行汇总。支持输出到CSV,Excel,HTML,json等。如果想将多个数据组合到一个文档中,那么会有点困难。例如,如果要在一个Excel工作表上放置两个DataFrame,则需要使用Excel库手动构建输出。
本文将介绍如何将多条信息组合成一个HTML模板,然后使用和将其转换为精美的PDF文档。
下面看看生成的PDF效果吧:
过程
使用Pandas将数据输出到Excel文件中的多个工作表或从pandas DataFrames创建多个Excel文件非常方便。但是,如果您想将多个信息组合到一个文件中,那么直接从Pandas完成它的方法并不多。幸运的是,python有很多工具可以办到。
在本文中,将使用通过以下流程来创建多页PDF 文档。
将使用通过以下流程来创建多页PDF 文档
这种方法的好处在于您可以将自己的工具替换为此工作流程。如果您想在HTML之外使用其他类型的标记,请选择Jinja。
工具
首先,使用HTML作为模板语言,因为它可能是生成结构化数据并允许相对丰富的格式化的最简单方法。每个人都知道(或可以弄清楚)足够的HTML来生成一个简单的报告。最困难的部分是弄清楚如何将HTML呈现为PDF。选择了WeasyPrint,相对而言是最佳解决方案,因为它仍在积极维护,可以相对容易地使用它。另外效果也很好。遗憾的是,此时文档有点缺乏,确实可以从HTML生成PDF。
数据
下面是导入数据并生成数据透视表以及CPU和软件销售的平均数量和价格的一些汇总统计数据。
导入模块,并读入销售渠道信息。
from __future__ import print_functionimport pandas as pdimport numpy as npdf = pd.read_excel("sales-funnel.xlsx")df.head()
透视数据进行总结。
sales_report = pd.pivot_table(df, index=["Manager