來源:關于數(shù)據(jù)分析與可視化

今天小編帶領大家用Python自制一個自動生成探索性數(shù)據(jù)分析報告這樣的一個工具,大家只需要在瀏覽器中輸入url便可以輕松的" />

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

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 用Python自制了一張網(wǎng)頁,一鍵自動生成探索性數(shù)據(jù)分析報告

用Python自制了一張網(wǎng)頁,一鍵自動生成探索性數(shù)據(jù)分析報告

時間:2023-06-24 13:00:01 | 來源:網(wǎng)站運營

時間:2023-06-24 13:00:01 來源:網(wǎng)站運營

用Python自制了一張網(wǎng)頁,一鍵自動生成探索性數(shù)據(jù)分析報告:作者:俊欣

來源:關于數(shù)據(jù)分析與可視化

今天小編帶領大家用Python自制一個自動生成探索性數(shù)據(jù)分析報告這樣的一個工具,大家只需要在瀏覽器中輸入url便可以輕松的訪問,如下所示




第一步

首先我們導入所要用到的模塊,設置網(wǎng)頁的標題、工具欄以及l(fā)ogo的導入,代碼如下

from st_aggrid import AgGridimport streamlit as stimport pandas as pdimport pandas_profilingfrom streamlit_pandas_profiling import st_profile_reportfrom pandas_profiling import ProfileReportfrom PIL import Imagest.set_page_config(layout='wide') #Choose wide mode as the default setting#Add a logo (optional) in the sidebarlogo = Image.open(r'wechat_logo.jpg')st.sidebar.image(logo, width=120)#Add the expander to provide some information about the appwith st.sidebar.expander("關于這個項目"): st.write(""" 該項目是將streamlit和pandas_profiling相結合,在您上傳數(shù)據(jù)集之后自動生成相關的數(shù)據(jù)分析報告,當然該項目提供了兩種模式 全量分析還是部分少量分析,這里推薦用部分少量分析,因為計算量更少,所需要的時間更短,效率更高 """)#Add an app title. Use css to style the titlest.markdown(""" <style> .font { font-size:30px ; font-family: 'Cooper Black'; color: #FF9633;} </style> """, unsafe_allow_html=True)st.markdown('<p class="font">請上傳您的數(shù)據(jù)集,該應用會自動生成相關的數(shù)據(jù)分析報告</p>', unsafe_allow_html=True)output







上傳文件以及變量的篩選

緊接的是我們需要上傳csv文件,代碼如下

uploaded_file = st.file_uploader("請上傳您的csv文件: ", type=['csv'])我們可以選擇針對數(shù)據(jù)集當中所有的特征進行一個統(tǒng)計分析,或者只是針對部分的變量來一個數(shù)據(jù)分析,代碼如下

if uploaded_file is not None: df = pd.read_csv(uploaded_file) option1 = st.sidebar.radio( '您希望您的數(shù)據(jù)分析報告中包含哪些變量呢', ('所有變量', '部分變量')) if option1 == '所有變量': df = df elif option1 == '部分變量': var_list = list(df.columns)要是用戶勾選的是部分變量,只是針對部分變量來進行一個分析的話,就會彈出來一個多選框來供用戶選擇,代碼如下

var_list = list(df.columns)option3 = st.sidebar.multiselect( '篩選出您希望在數(shù)據(jù)分析報告中包含的變量', var_list)df = df[option3]用戶可以挑選到底是“簡單分析”或者是“完整分析”,要是勾選的是“完整分析”的話,會跳出相應的提示,提示“完整分析”由于涉及到更加復雜的計算操作,耗時更加地長,要是遇到大型的數(shù)據(jù)集,還會有計算失敗的情況出現(xiàn)

option2 = st.sidebar.selectbox( '篩選模式,完整分析還是簡單分析', ('簡單分析', '完整分析')) if option2 == '完整分析': mode = 'complete' st.sidebar.warning( '完整分析由于涉及到更加復雜的計算操作,耗時更加地長,要是遇到大型的數(shù)據(jù)集,還會有計算失敗的情況出現(xiàn),這里推薦使用簡單分析') elif option2 == '簡單分析': mode = 'minimal' grid_response = AgGrid( df, editable=True, height=300, width='100%', ) updated = grid_response['data'] df1 = pd.DataFrame(updated)當用戶點擊“生成報告”的時候就會自動生成一份完整的數(shù)據(jù)分析報告了,代碼如下

if st.button('生成報告'): if mode=='complete': profile=ProfileReport(df, title="User uploaded table", progress_bar=True, dataset={ "簡介": '歡迎關注公眾號:關于數(shù)據(jù)分析與可視化', "作者": '俊欣', "時間": '2022.05' }) st_profile_report(profile) elif mode=='minimal': profile=ProfileReport(df1, minimal=True, title="User uploaded table", progress_bar=True, dataset={ "簡介": '歡迎關注公眾號:關于數(shù)據(jù)分析與可視化', "作者": '俊欣', "時間": '2022.05' }) st_profile_report(profile)最后出來的結果如下,這里再來顯示一遍






關鍵詞:數(shù)據(jù),報告,分析

74
73
25
news

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

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