簡單的框架可創(chuàng)建精美的報告并與團隊共享您的分析結(jié)果

> Photo by Clay Banks on Unsplash
動機
對于許多Python數(shù)據(jù)分析,有時您想與他人共享您的發(fā)現(xiàn)。 顯示您的工作將幫助您的團隊和經(jīng)理保持最新狀態(tài),并在網(wǎng)絡中建立數(shù)據(jù)科學家的聲譽。 在本文中,我提到共享工作是如何利用我的職業(yè)的:
我努力為數(shù)據(jù)科學奉獻時間。 但是,找到新策略可以使我提高學習率并…
但是,僅僅共享是不夠的。 假設在清理數(shù)據(jù)并創(chuàng)建了一些圖表進行分析之后,您想與他人共享您的發(fā)現(xiàn)。 您要做的最后一件事是與非技術人員(例如您的涉眾)共享整個代碼或筆記本,并要求他們安裝Jupyter Notebook和所需的環(huán)境以查看您的發(fā)現(xiàn),如下所示:
"這是.ipynb文件。 要查看此文件,您需要安裝這些軟件包。 然后在命令行Jupyter Notebook上鍵入。 看到筆記本后,運行所有單元格,您應該能夠看到數(shù)據(jù)和可視化。"
作為替代方案,您可以拍攝可視化照片并將其放在平臺中,但是觀眾將無法對可視化進行太多控制-他們將無法交互使用它,瀏覽任何數(shù)據(jù)或更改輸入?yún)?shù) 。 此外,他們每次想要更改時,都必須手動創(chuàng)建另一個報告。
最佳策略是在不設置環(huán)境的情況下共享特定的面向用戶的部分。 如果您可以將這樣的鏈接發(fā)送給您的隊友或利益相關者,那不是很好

在一個地方查看所有發(fā)現(xiàn)?

那就是當您需要諸如Datapane之類的Python框架時。
什么是Datapane?
Datapane是面向使用Python分析數(shù)據(jù)并需要一種共享結(jié)果的人員的API。 它提供了一種方法,可以通過在分析中圍繞通用對象的組件以編程方式創(chuàng)建報告,例如:
·Pandas數(shù)據(jù)框
· Python可視化庫(例如Plotly,Bokeh,Altair和Folium)中的圖
· Markdown
創(chuàng)建報告后,可以將報告發(fā)布到Web上,在云中動態(tài)生成或嵌入到您自己的應用程序中,在該應用程序中可以瀏覽數(shù)據(jù),并可以交互使用可視化效果
Datapane還允許您部署Python腳本和筆記本,以便其他人可以運行它們來從瀏覽器生成報告,而不必擔心代碼,筆記本或設置Python環(huán)境。
試試吧!
假設您有一個帶有Pandas Dataframe和Altair圖表的腳本
import pandas as pd
import altair as alt
df = pd.read_csv('https://query1.finance.yahoo.com/v7/finance/download/GOOG?period2=1585222905&interval=1mo&events=history')
chart = alt.Chart(df).encode(
x='Date:T',
y='Open'
).mark_line().interactive()
要創(chuàng)建報告,只需按照以下步驟
· 使用以下方法安裝Datapane
pip3 install datapane
· 在Datapane上注冊以獲取您自己的令牌,并使用該令牌登錄終端中的datapane
datapane login --server=https://datapane.com/ --token=yourtoken
· 然后,只需在現(xiàn)有分析中再添加幾行代碼即可!
import datapane as dp
# Scripts to create df and chart
....
# Once you have the df and the chart, simply use
r = dp.Report(
dp.Markdown('My simple report'), #add description to the report
dp.Table(df), #create a table
dp.Plot(chart) #create a chart
)
# Publish your report. Make sure to have visibility='PUBLIC' if you want to share your report
r.publish(name='stock_report', visibility='PUBLIC')
· 運行腳本,瞧! Datapane.com會自動為您創(chuàng)建一個報告!
https://datapane.com/khuyen/reports/stock_report_9eddadcd/
而已! 現(xiàn)在您需要做的就是將此鏈接分享給您的隊友或經(jīng)理

或在社交媒體上分享

我還能用Datapane做什么?
允許查看者輸入新參數(shù)
您不僅希望查看者查看您的報告,而且還可能希望讓他們能夠與圖進行交互并像這樣插入不同的參數(shù)
借助Datapane,其他人可以生成您的報告,而不必擔心代碼,筆記本或設置Python環(huán)境。 他們可以輸入要指定哪些參數(shù)作為輸入,并且每次都會收到動態(tài)報告。
要部署名為stock_report.py的腳本,請創(chuàng)建上述腳本,然后使用Datapane的CLI:
datapane script deploy --script=stock_report.py --name=stock_report
在此處查看有關如何部署腳本的更多說明。
將報告嵌入社交平臺
如果您是像我這樣的中型作家或博客作者,則可能希望嵌入如下表格或圖表:

使用Datapane,您只需復制并粘貼在Medium上Datapane上發(fā)布的網(wǎng)址,即可將圖表嵌入到Medium中。 您也可以將它們嵌入Reddit,Confluence,Notion或您自己的網(wǎng)站中。
在數(shù)據(jù)窗格上存儲文件和對象以在多個腳本中使用
Datapane提供了一個Blob API,該API可讓您從任何Python或CLI環(huán)境上傳文件,并在腳本內(nèi)或通過CLI訪問它們。
假設您可以使用dp.Blob在blob.py中保存數(shù)據(jù)框,文件或?qū)ο螅埵褂?/p>
import datapane as dp
# Upload a DataFrame
b = dp.Blob.upload_df(df, name='my_df')
# Upload a file
b = dp.Blob.upload_file("~/my_dataset.csv", name='my_ds')
# Upload an object
b = dp.Blob.upload_obj([1,2,3], name='my_list')
然后,如果要將它們加載到另一個腳本中,請使用
import datapane as dp
# Download a DataFrame
blob = dp.Blob.get(name="blob_id")
# Download a DataFrame
b = blob.download_df()
# Download a file
b = blob.download_file("~/my_dataset.csv")
# Download an object
b = blob.download_obj()
從報告中下載表格和圖表
如果您的查看者想要下載表格或圖表,則可以使用報告中的"下載"按鈕輕松地進行操作。

結(jié)論
恭喜你! 您剛剛學到了一種新工具,可以與其他喜愛的Python庫一起添加到數(shù)據(jù)科學工作流程中。
import pandas as pd
import numpy as np
import datapane as dp
希望本文為您試用Datapane提供了良好的開端。 您可以在此處了解有關Datapane的更多信息。 如果您對此工具有任何疑問,請在下面發(fā)表評論或在LinkedIn上給我發(fā)送消息。
我喜歡寫有關基本數(shù)據(jù)科學概念的文章,并喜歡使用不同的算法和數(shù)據(jù)科學工具。 在Medium上關注我,以獲取有關我最新文章的更新。 您也可以在LinkedIn和Twitter上與我聯(lián)系。
(本文翻譯自Khuyen Tran的文章《Introduction to Datapane: A Python Library to Build Interactive Reports》,參考:
https://towardsdatascience.com/introduction-to-datapane-a-python-library-to-build-interactive-reports-4593fd3cb9c8)