国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 用Python制作一份HTML報告

用Python制作一份HTML報告

時間:2023-10-06 23:54:02 | 來源:網(wǎng)站運營

時間:2023-10-06 23:54:02 來源:網(wǎng)站運營

用Python制作一份HTML報告:
本文使用 Zhihu On VSCode 創(chuàng)作并發(fā)布
剛剛寫好了一個制作報告的Python程序,分享一下,也是作為自己的筆記:(幾乎)沒有任何前端基礎(chǔ),用Python制作一份HTML的數(shù)據(jù)報告。既可以做為網(wǎng)頁發(fā)布到網(wǎng)站上,也可以打印成PDF。

用Markdown制作一個網(wǎng)頁模板

第一步是制作一個網(wǎng)頁模板。如果有前端技術(shù),當然可以用html和CSS做出一個漂亮的模板。或者也可以在網(wǎng)上找到合適的模板。但是我用了最簡單的方法:在VScode里用Markdown寫一份簡單的模板,并用Markdown Preview Enhanced插件保存為html格式。也可以使用其他喜歡的Markdown筆記軟件,如Typora之類的,大多有導出html的功能。所以最后html的樣式就取決于這些軟件的渲染結(jié)果了。

寫模板的時候把需要插入文字、表格、圖片等內(nèi)容的地方用兩層大括號“{{ }}”括起來,后續(xù)插入內(nèi)容。

另外,在開頭插入一段plotly的源碼地址,后面將會用plotly畫圖。例如:

<script src="https://cdn.plot.ly/plotly-latest.min.js"></script># 報告標題{{ summary }}## 詳細數(shù)據(jù){{ table }}## 數(shù)據(jù)可視化{{ chart }}把這份MD文件導出為html,命名為”Template.html“,并放在Python代碼的同一個文件夾下,這樣模板就準備好了。

用jinja2導入模板

jinja2是一個處理html的模板引擎。我只學到了一個語法,就是在模板中的{{ }}用法類似于字符串的format函數(shù)。

Jinja2載入模板:

import jinja2env = jinja2.Environment(loader=jinja2.FileSystemLoader(searchpath=''))template = env.get_template('Template.html')summary = u"這是一些文字"# 輸出數(shù)據(jù)表格的代碼table = u"后面來制作數(shù)據(jù)表格"# 輸出圖表的代碼chart = u"后面來制作圖片"# 導出圖片并保存# 語法和format類似,‘=’前面是html模板的{{ }}中的變量名,后面是要導入的內(nèi)容,我喜歡用一樣的名字,比較容易識別html = template.render(summary=summary, table=table, chart=chart)with open('Report.html', 'w') as f: f.write(html)這樣就得到了一份Report的html文件。其中的數(shù)據(jù)表格和圖暫時都是用字符串代替的。接下來講怎么插入數(shù)據(jù)和圖。

Pandas輸出表格

可以用df.to_html把數(shù)據(jù)表格變成html格式插入網(wǎng)頁,還可以用df.style功能對數(shù)據(jù)表做一些高亮等操作。

import pandas as pdimport numpy as np# 簡單的數(shù)據(jù)表格df = pd.DataFrame(np.random.randn(5, 4), columns=['one', 'two', 'three', 'four'], index=['a', 'b', 'c', 'd', 'e'])# 輸出為htmltable = df.to_html()

plotly進行數(shù)據(jù)可視化并插入網(wǎng)頁

plotly本身就是一個交互式的數(shù)據(jù)可視化包。我們用plotly.offline.plot可以直接輸出圖片內(nèi)容為網(wǎng)頁格式。為了把圖片插入到我們的報告里,我們需要plotly不要輸出完整html,而只是包含數(shù)據(jù)的div。所以前面提到了把plotly的js引用加到我們的模板前面。

import plotly as pyimport plotly.express as px# 畫一個箱型圖。fig = px.box(data_frame=df, x='one', y='two')chart = py.offline.plot(fig, include_plotlyjs=False, output_type='div')好了,現(xiàn)在我們可以把所有的表格和圖片插入報告里了。重新運行一下前面保存文件的代碼。

html = template.render(summary=summary, table=table, chart=chart)with open('Report.html', 'w') as f: f.write(html)這樣,一份完整的html格式的數(shù)據(jù)報告就做好了。你可以把這份代碼作為你整個數(shù)據(jù)分析pipeline的一部分,每次的分析結(jié)果都可以自動生成一份報告。

關(guān)鍵詞:報告

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉