今天小编带领大家用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 Imagest.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 = dfelif 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)

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

NO.1

往期推荐

Historical articles

【干货原创】介绍一个Python模块,Seaborn绘制的图表也能实现动态交互

【优质干货】这里有个Python模块,绘制出超级惊艳的可视化动图

【优质原创】介绍一个效率爆表的探索性数据分析插件

【原创好文】当机器学习遇到数据量不够时,这几个Python技巧为你化解难题

扫码加好友,加入海归Python编程和人工智能群

分享、收藏、点赞、在看安排一下?

【原创佳作】用Python自制了一张网页,一键自动生成探索性数据分析报告相关推荐

  1. python ppt自动生成_实战 | Python自动生成PPT调研报告

    原标题:实战 | Python自动生成PPT调研报告 原文: 全文约 3821 字,读完可能需要 5 分钟. 文/JSong @2017.02.28 在数据分析里面有一句话是说,80%的时间要用于数据 ...

  2. python项目分析报告_实战 | Python自动生成PPT分析报告

    原标题:实战 | Python自动生成PPT分析报告 在数据分析里面有一句话是说,80%的时间要用于数据清洗和整理,而我觉得理想的状态应该是把更多的把时间花在数据背后的洞察当中.去年11月在简书占了个 ...

  3. 精选10个Python库,几行代码轻松搞定探索性数据分析!

    点击上方"菜鸟学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 探索性数据分析是数据科学模型开发和数据集研究的重要组成部分之一.在拿到一个 ...

  4. python生成ppt_实战 | Python自动生成PPT分析报告

    数据需求:调研数据,包括但不仅限于 问卷星原始数据. 问卷网原始数据 主要功能1: 自动生成概述性质的报告(ppt格式,针对每道题目给出频数统计,并绘制ppt图表) 主要功能2:自动交叉分析,并生成报 ...

  5. Python——windows下pip换源 和 自动生成和安装requirements.txt

    当自己电脑(Windows系统)装python的第三方包出现timeout时,一般就是下载速度太慢了.采取的方法可以跟换pip的下载源. 转载文章的链接:[python]windows下pip换源 P ...

  6. 准工业级代码分享:Python用于自动生成EXCEL周期报告

    前言 Python自动化在我看来一直是个小打小闹的需求,无法独立成为工业级或者商业级的产品需求.尤其是Python操作PPT,在我看来根本没有一点用武之地.因为好的商业PPT远不是枯燥的复制和粘贴,绝 ...

  7. python绘制动态图表怎么存下来_用python如何实现导入excel数据后自动生成图表?python如何实现交互式动态图表?...

    这个需求涉及的环节太多了.导入excel文件,获取数据 -- 需要xlrd模块把数据导入python 2. 设定输出图表类型 -- 需要matplot模块.根据数据复杂度,可能需要ETL,那么需要pa ...

  8. 【Python】利用graphviz和pycallgraph库自动生成Python函数调用关系图

    一.下载并安装graphviz 因为这个模块依赖Graphviz2.38这个软件,这个贝尔实验室大牛为画图提供的一个命令行工具. 下载地址:https://graphviz.gitlab.io/_pa ...

  9. python封装c++接口_使用MetaSIP自动生成SIP封装C++到Python接口

    利用SIP将C++封装为Python,SIP采用手动书写,但对于比较庞大的工程手动书写sip文件就显得很苍白无力.QT利用MetaSIP这款工具生成sip文件,然后手动修改部分SIP文件,然后利用py ...

最新文章

  1. Spring MVC前后端的数据传输
  2. python第五章_Python数据分析-第5章Series(下)
  3. 中国汽车产销量负增长 工信部:不见得是坏事 将推新政策
  4. 机器学习:从入门到第一个模型
  5. 2020 云原生 7 大趋势预测
  6. 计算机网络在实践教学,高职计算机网络技术实践教学研究
  7. onethink swfupload upload.php,OneThink--ThinkPHP3.2 缓存文件泄露
  8. 刚出炉!AI指数报告:AI人才需求暴涨35倍,薪酬问鼎No.1
  9. ArcGIS Server 10 for java 注册SOE出现的问题
  10. 20145101 《Java程序设计》第7周学习总结
  11. bzoj 1217 [HNOI2003]消防局的设立 贪心
  12. free、vmstat监视内存使用情况
  13. 分享一个导出数据到 Excel 的类库
  14. 拓端tecdat|数据岗位现状调查报告
  15. 虚拟机VMware的安装
  16. java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC...
  17. google 翻译 api
  18. 20170716xlVba销售明细转销售单据
  19. MOTO ME525/Defy 刷Android4.0 刷机教程
  20. 数据仓库之日期维度表构建

热门文章

  1. 看我如何在赛门铁克邮件安全网关上实现弱口令到RCE漏洞执行
  2. 转:PHP – Best Practises
  3. 基于java+jsp的水产品养殖配送系统
  4. 解决vue点击图标调转页面返回上级页面图标仍然高亮的问题
  5. android x5 webview mixed content,关于 Webview 的混合模式(华为 P30 出现问题)
  6. 《王者荣耀》手游感想
  7. [KM算法]hdoj 2426:Interesting Housing Problem
  8. 内核级线程(KLT)和用户级线程(ULT)
  9. Siri之父揭秘人工智能产品如何成功创造千亿市场
  10. 给微信5.0泼凉水:社交+电商难落地