呆鸟译Py呆鸟的Python数据分析

Datapane 004 - 报告 - 创建报告

2020-10-28  本文已影响0人  呆鸟的简书

报告将数据集、可视图等 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 团队版虚拟机在线发布与分享报告。

上一篇 下一篇

猜你喜欢

热点阅读