用Python自制了一张网页,一键自动生成探索性数据分析报告

liftword2个月前 (03-02)技术文章12

作者:俊欣

来源:关于数据分析与可视化

今天小编带领大家用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("""  """, unsafe_allow_html=True)
st.markdown('

请上传您的数据集,该应用会自动生成相关的数据分析报告

', 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)

最后出来的结果如下,这里再来显示一遍

相关文章

数据分析却不懂 Python,这份快速入门秘籍不要错过

实名推荐Python学习利器——《Jupyter Notebook数据分析入门与实战》列位看官,你道此书何来,人邮君给你讲个发生在大观园的小故事,宝玉也要学python……是日傍晚,宝玉正在书房学习编...

Python如何应用于数据分析_怎么用python做数据分析

一、数据分析全流程框架Python数据分析流程可划分为六个核心环节,覆盖从数据获取到模型应用的全周期:1. 数据获取与导入– 数据源类型:支持本地文件(CSV/Excel)、数据库(SQL/NoSQL...

用Python进行数据分析,就要掌握什么技术?

本文是针对数据分析写的Python教程,文章内容针对以下初学者遇到的问题:需要学多久的Python?需要学到什么程度的Python?学Python的最优课程和书籍有什么?为了处理数据集,我需要精通Py...

Python和Excel终于互通了!这个插件能自动生成代码实现数据分析

加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码?没错,只需要加载这个名为Mito的小工具包,用Python做数据分析,变得和用Excel一样简单:介绍以 Excel 为代表...

PM如何借助 GPT+Python 提升数据分析能力

数据分析是产品经理的核心技能之一。本文将探讨如何利用GPT和Python提升数据分析能力,从而帮助产品经理在日常工作中做出更加精准的策略优化和决策。策略产品经理在日常工作中经常需要对策略优化前后的效果...

用Python进行数据分析,让你一看就会

本书详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。虽然本书的标题是“数据分析”,重点却是Python编程、库,以及用于数据分析的工具。第1章 准备工作第2章 Pyt...