报告将数据集、可视图等 Python 分析结果打包在一起,变为可分享的交互式文档。
简介
用 Python 做数据分析其实没必要把所有代码或 Notebook 文件都分享给用户,只需分享用户关注的内容就可以了。对普通用户来说,直接用浏览器、电子邮件、Slack 等现成的工具查看报告就够了,最好不要让他们花额外的精力学习 Python 或 Jupyter。
Datapane 允许通过编程,将 Python 分析工具创建的 pandas DataFrame、可视图及 Markdown 文本等对象打包在一起,生成报告。
创建报告
Datapane 的 Python API 支持用多种数据组件创建、保存、发布报告。
举例来说,Datapane 的 Table(表格)组件可以直接调用 DataFrame。下列代码将 DataFrame 传递至 Table 组件,只用这个组件就可以创建报告:
# simple_report.py
import pandas as pd
import altair as alt
import datapane as dp
dataset = pd.read_csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')
df = dataset.groupby(['continent', 'date'])['new_cases_smoothed_per_million'].mean().reset_index()
dp.Report(
dp.Table(df)
).save(path='report.html', open=True)
将这段代码复制到 Python 脚本,保存并运行该 Python 脚本文件,即可生成报告。
$ python3 simple_report.py
将此 HTML 文件发送给你的用户,或发布在 Datapane 公众版上,他们就可以浏览你的数据集,筛选数据,甚至可以下载 CSV 文件。
进一步完善报告
上面的报告十分基础,接下来,用可视图与 Markdown 文本点缀一下。与传统 BI 工具不同,Datapane 不依赖专用的可视化引擎,相反,它支持 Altair、Bokeh 等 Python 可视化支持库。
沿用上文的例子,用 Altair 支持库为数据绘制可视图。
本教程后续内容将沿用下列示例代码,把这些代码复制到 Python 脚本文件或 Jupyter Notebook,运行一下试试。
# simple_report.py
import pandas as pd
import altair as alt
import datapane as dp
dataset = pd.read_csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')
df = dataset.groupby(['continent', 'date'])['new_cases_smoothed_per_million'].mean().reset_index()
plot = alt.Chart(df).mark_area(opacity=0.4, stroke='black').encode(
x='date:T',
y=alt.Y('new_cases_smoothed_per_million:Q', stack=None),
color=alt.Color('continent:N', scale=alt.Scale(scheme='set1')),
tooltip='continent:N'
).interactive().properties(width='container')
dp.Report(
dp.Plot(plot),
dp.Table(df)
).save(path='report.html', open=True)
用上文中的命令运行该 Python 脚本,生成下图所示的报告。
支持的组件和报告的 API 详见 API 参考手册。
查看报告
如前文所述,通过浏览器就可以查看报告。不过,开发时,还可以用其它方法查看与分享报告。
在私有虚拟机上使用 Datapane,把报告的可视权限设置为
ORG
时,这样,只有您所在的组织机构内部人员才能查看报告,其他人无法查看报告。
Datapane 支持 Jupyter Notebook 集成:开发报告时,不用打开新窗口,只要在 Notebook 里调用 report.preview()
, 即可直接预览内嵌在 Notebook 里的报告。
下一节,介绍怎样用 Datapane 公众版或私有的 Datapane 团队版虚拟机在线发布与分享报告。
网友评论