
作者:俊欣
來源:關于數據分析與可視化
今天小編帶領大家用Python自制一個自動生成探索性數據分析報告這樣的一個工具,大家只需要在瀏覽器中輸入url便可以輕松的訪問,如下所示
首先我們導入所要用到的模塊,設置網頁的標題、工具欄以及logo的導入,代碼如下
from st_aggrid import AgGrid import streamlit as st import pandas as pd import pandas_profiling from streamlit_pandas_profiling import st_profile_report from pandas_profiling import ProfileReport from PIL import Image
st.set_page_config(layout='wide') #Choose wide mode as the default setting #Add a logo (optional) in the sidebar logo = Image.open(r'wechat_logo.jpg')
st.sidebar.image(logo, width=120) #Add the expander to provide some information about the app with st.sidebar.expander("關于這個項目"):
st.write("""
該項目是將streamlit和pandas_profiling相結合,在您上傳數據集之后自動生成相關的數據分析報告,當然該項目提供了兩種模式 全量分析還是部分少量分析,這里推薦用部分少量分析,因為計算量更少,所需要的時間更短,效率更高
""") #Add an app title. Use css to style the title st.markdown(""" <style> .font {
font-size:30px ; font-family: 'Cooper Black'; color: #FF9633;}
</style> """, unsafe_allow_html=True)
st.markdown('<p class="font">請上傳您的數據集,該應用會自動生成相關的數據分析報告</p>', unsafe_allow_html=True)
output
緊接的是我們需要上傳csv文件,代碼如下
uploaded_file = st.file_uploader("請上傳您的csv文件: ", type=['csv'])
我們可以選擇針對數據集當中所有的特征進行一個統計分析,或者只是針對部分的變量來一個數據分析,代碼如下
if uploaded_file is not None:
df = pd.read_csv(uploaded_file)
option1 = st.sidebar.radio( '您希望您的數據分析報告中包含哪些變量呢',
('所有變量', '部分變量')) if option1 == '所有變量':
df = df elif option1 == '部分變量':
var_list = list(df.columns)
要是用戶勾選的是部分變量,只是針對部分變量來進行一個分析的話,就會彈出來一個多選框來供用戶選擇,代碼如下
var_list = list(df.columns) option3 = st.sidebar.multiselect( '篩選出您希望在數據分析報告中包含的變量', var_list) df = df[option3]
用戶可以挑選到底是“簡單分析”或者是“完整分析”,要是勾選的是“完整分析”的話,會跳出相應的提示,提示“完整分析”由于涉及到更加復雜的計算操作,耗時更加地長,要是遇到大型的數據集,還會有計算失敗的情況出現
option2 = st.sidebar.selectbox( '篩選模式,完整分析還是簡單分析',
('簡單分析', '完整分析')) if option2 == '完整分析':
mode = 'complete' st.sidebar.warning( '完整分析由于涉及到更加復雜的計算操作,耗時更加地長,要是遇到大型的數據集,還會有計算失敗的情況出現,這里推薦使用簡單分析') elif option2 == '簡單分析':
mode = 'minimal' grid_response = AgGrid(
df,
editable=True,
height=300,
width='100%',
)
updated = grid_response['data']
df1 = pd.DataFrame(updated)
當用戶點擊“生成報告”的時候就會自動生成一份完整的數據分析報告了,代碼如下
if st.button('生成報告'): if mode=='complete':
profile=ProfileReport(df,
title="User uploaded table",
progress_bar=True,
dataset={ "簡介": '歡迎關注公眾號:關于數據分析與可視化', "作者": '俊欣', "時間": '2022.05' })
st_profile_report(profile) elif mode=='minimal':
profile=ProfileReport(df1,
minimal=True,
title="User uploaded table",
progress_bar=True,
dataset={ "簡介": '歡迎關注公眾號:關于數據分析與可視化', "作者": '俊欣', "時間": '2022.05' })
st_profile_report(profile)
最后出來的結果如下,這里再來顯示一遍
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25