我有一个评估大学教授的调查生成的数据库。我想要的是一个 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 报告的脚本,通过图表总结这些信息,例如每个老师的总分图表,另一个图表每个老师按类别的分数,另一个图表每个学生的平均分,等等。最后,每个老师都会有一份报告。我想要一份这样的报告
我的问题是什么?
我的问题是我需要哪些 python 包和模块来完成这项任务。这样做的一般过程是什么。我不需要代码,因为我知道答案很笼统,但我知道如何做到这一点。
例如:您首先需要使用 pandas 处理信息,创建一个表格来汇总您想要绘制的信息,然后绘制它,然后使用 XYZ 模块创建报告模板,然后使用 XYZ 模块将其导出为 pdf .
原文由 ozo 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 python 中创建 pdf 有很多选项。其中一些选项是 ReportLab、pydf2、pdfdocument 和 FPDF。
FPDF 库使用起来相当简单,这就是我在本示例中使用的库。可以在 此处 找到 FPDF 文档。
考虑一下您可能想要使用哪些 python 模块来创建图形和表格可能也是一件好事。在我的示例中,我使用 matplotlib( 链接到文档),我还使用 Pandas 使用
pandas.dataframe()
创建数据框。我在下面发布了一个相当冗长但完全可重现的示例,使用了 pandas、matplotlib 和 fpdf。数据是 OP 在问题中提供的数据的子集。我在我的示例中循环遍历数据框来创建表,但还有其他可能更有效的方法来执行此操作。
预期测试.pdf:
更新(2020 年 4 月): 我在 2020 年 4 月对原始答案进行了编辑,以替换使用
pandas.DataFrame.ix()
因为这已被 弃用。在我的示例中,我能够将它的使用替换为pandas.DataFrame.iloc
并且输出与以前相同。