作者:俊欣
来源:关于数据分析与可视化
今天小编带领大家用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
在数据分析领域,Excel作为一种普及率极高且功能强大的工具,无疑为无数专业人士提供了便捷的解决方案。尽管Excel自带了丰富的功 ...
2025-01-17在这个瞬息万变的时代,许多人都在寻找能让他们脱颖而出的职业。而数据分析师,作为大数据和人工智能时代的热门职业,自然吸引了 ...
2025-01-14Python作为一门功能强大的编程语言,已经成为数据分析和可视化领域的重要工具。无论你是数据分析的新手,还是经验丰富的专业人士 ...
2025-01-10完全靠数据决策,真的靠谱吗? 最近几年,“数据驱动”成了商界最火的关键词之一,但靠数据就能走天下?其实不然!那些真正成功 ...
2025-01-09SparkSQL 结构化数据处理流程及原理是什么?Spark SQL 可以使用现有的Hive元存储、SerDes 和 UDF。它可以使用 JDBC/ODB ...
2025-01-09在如今这个信息爆炸的时代,数据已然成为企业的生命线。无论是科技公司还是传统行业,数据分析正在深刻地影响着商业决策以及未来 ...
2025-01-08“数据为王”相信大家都听说过。当前,数据信息不再仅仅是传递的媒介,它成为了驱动经济发展的新燃料。对于企业而言,数据指标体 ...
2025-01-07在职场中,当你遇到问题的时候,如果感到无从下手,或者抓不到重点,可能是因为你掌握的思维模型不够多。 一个好用的思维模型, ...
2025-01-06在现代企业中,数据分析师扮演着至关重要的角色。每天都有大量数据涌入,从社交媒体到交易平台,数据以空前的速度和规模生成。面 ...
2025-01-06在职场中,许多言辞并非表面意思那么简单,有时需要听懂背后的“潜台词”。尤其在数据分析的领域里,掌握常用术语就像掌握一门新 ...
2025-01-04在当今信息化社会,数据分析已成为各行各业的核心驱动力。它不仅仅是对数字进行整理与计算,而是在数据的海洋中探寻规律,从而指 ...
2025-01-03又到一年年终时,各位打工人也迎来了展示成果的关键时刻 —— 年终述职。一份出色的年终述职报告,不仅能全面呈现你的工作价值, ...
2025-01-03在竞争激烈的商业世界中,竞品分析对于企业的发展至关重要。今天,我们就来详细聊聊数据分析师写竞品分析的那些事儿。 一、明确 ...
2025-01-03在数据分析的江湖里,有两个阵营总是争论不休。一派信奉“大即是美”,认为数据越多越好;另一派坚守“小而精”,力挺质量胜于规 ...
2025-01-02数据分析是一个复杂且多维度的过程,从数据收集到分析结果应用,每一步都是对信息的提炼与升华。可视化分析结果,以图表的形式展 ...
2025-01-02在当今的数字化时代,数据分析师扮演着一个至关重要的角色。他们如同现代企业的“解密专家”,通过解析数据为企业提供决策支持。 ...
2025-01-02数据分析报告至关重要 一份高质量的数据分析报告不仅能够揭示数据背后的真相,还能为企业决策者提供有价值的洞察和建议。 年薪 ...
2024-12-31数据分析,听起来好像是技术大咖的专属技能,但其实是一项人人都能学会的职场硬核能力!今天,我们来聊聊数据分析的核心流程,拆 ...
2024-12-31提到数据分析,你脑海里可能会浮现出一群“数字控”抱着电脑,在海量数据里疯狂敲代码的画面。但事实是,数据分析并没有你想象的 ...
2024-12-31关于数据分析师是否会成为失业高危职业,近年来的讨论层出不穷。在这个快速变化的时代,技术进步让人既兴奋又不安。今天,我们从 ...
2024-12-30