使用Jupyter Notebooks(使用Jupytext和Papermill)自动生成报告

Jupyter笔记本是用于交互式运行代码以及编写带有数据和图表的叙述的最佳可用工具之一。鲜为人知的是它们可以方便地进行版本控制并自动运行。

您是否有Jupyter笔记本,其中包含您定期手动运行的图表和图形? 使用同一笔记本而不是使用脚本启动自动报告系统会不会很好? 如果此脚本甚至可以将一些参数传递给它运行的笔记本怎么办?

更多了解:Jupyter

这篇文章分几步说明了如何具体地做到这一点,包括在生产环境中。

示例笔记本

我们将向您展示如何进行版本控制,自动运行和发布依赖于参数的笔记本。 例如,我们将使用一个笔记本(链接)来描述特定年份的世界人口和国内生产总值。 它使用简单:只需在第一个单元格中更改年份变量,然后重新运行,即可获得所选年份的图表。 但这需要手动干预。 如果可以自动执行更新并为year参数的每个可能值生成报告,则将更加方便(一般而言,笔记本计算机不仅可以基于用户提供的某些参数,还可以通过与数据库的连接等来更新其结果)。

版本控制

在专业环境中,笔记本是由数据科学家设计的,但是在生产环境中运行笔记本的任务可能由其他团队来处理。 因此,通常人们必须共享笔记本。 最好通过版本控制系统来完成。

Jupyter笔记本因其版本控制的难度而闻名。 让我们考虑上面的笔记本,文件大小为3 MB,其中大部分是由嵌入式Plotly库贡献的。 如果我们删除第二个代码单元的输出,笔记本将小于80 KB。 删除所有输出后,大小仅为1.75 KB。 这表明它的多少内容与纯代码无关! 如果我们不注意,笔记本中的代码更改将丢失大量的二进制内容。

为了获得有意义的差异,我们使用Jupytext(链接)。 Jupytext可以通过pip或conda安装。笔记本服务器重新启动后,Jupyter中将出现一个Jupytext菜单:

详情参阅http://viadean.com

你可能感兴趣的:(编程)