我有一个数据库,是由一个评估大学教授的调查生成的。我想要的是一个python脚本,它从数据库中获取信息,为每个用户生成一个图表表,为每个用户创建图表,然后将其呈现在模板中以将其导出为pdf。
数据库是什么样子的
User Professor_evaluated Category Question Answer
_________________________________________________________________
Mike Professor Criss respect 1 3
Mike Professor Criss respect 2 4
Mike Professor Criss wisdom 3 5
Mike Professor Criss wisdom 4 3
Charles Professor Criss respect 1 3
Charles Professor Criss respect 2 4
Charles Professor Criss wisdom 3 5
Charles Professor Criss wisdom 4 3
每个教师都有几个类别(尊重、智慧等)需要评估,每个类别又有相关的问题。换句话说,一个类别有几个问题。数据库的每一行都是学生评估教师的问题的答案
我需要什么
我需要创建一个脚本,自动生成PDF报告,通过图表汇总此信息,例如每个老师的整体得分的图表,每个老师按类别的得分的另一个图表,每个学生的平均值的另一个图表等。最后,每个老师都会有一个报告。我想要一个像this
这样的报告
我的问题是什么
我的问题是我需要哪些python包和模块来完成这个任务。以及这样做的一般过程是什么。我不需要代码,因为我知道答案是非常一般的,但我知道如何做到这一点。
- 例如:您首先需要使用pandas处理信息,创建一个汇总您想要绘制的信息的表格,然后绘制它,然后使用XYZ模块创建报告模板,然后使用XYZ模块将其导出为PDF。
4条答案
按热度按时间nbysray51#
在python中创建pdf有很多选项。其中一些选项是ReportLab,pydf2,pdfdocument和FPDF。
FPDF库使用起来相当简单,我在这个例子中使用了它。FPDF文档可以在here找到。
也许考虑一下你可能想使用什么python模块来创建图形和表格也是很好的。在我的例子中,我使用matplotlib(link to docs),我还使用Pandas使用
pandas.dataframe()
创建了一个数据框。我在下面发布了一个相当长但完全可复制的示例,使用了pandas,matplotlib和fpdf。数据是OP在问题中提供的数据的子集。我在示例中循环通过dataframe来创建表,但还有其他方法,也许更有效。
预期测试.pdf:
**更新(2020年4月):**我在2020年4月对原始答案进行了编辑,以替换
pandas.DataFrame.ix()
的使用,因为这是deprecated。在我的示例中,我能够将其使用替换为pandas.DataFrame.iloc
,输出与以前相同。ttcibm8c2#
一个有点异端的答案:RMarkdown(在RStudio中),使用Python代码块,通过
reticulate
(现在的默认方式),就像在Jypiter笔记本中一样,为您提供长期的Python“会话”。RMarkdown文档可以“编织”成PDF,html,Word,html幻灯片,甚至PowerPoint。说真的,R世界在这个领域领先几条街。
ewm0tg9j3#
我同意@drz关于RMarkdown创建这样一个报告的观点。学术作品应该明确使用这个。无论如何,还有stitch,它确实使用起来很简单,在很多情况下可能就足够了。来自FPF的许多优点:
以下是stitch中的@patrickjlong1示例:
display graphics
Direct matplotlib output, without rendering to file.
Symbolic expressions
You may also want to work with sympy :
stitch test2.stich -o output.pdf
1l5u6lss4#
在我的例子中:
希望这能帮上忙。