python交互界面数据分析_如何用 Python 和 Streamlit 做交互式数据分析产品?

「本文参与少数派 2019 年度征文 + 效率有心得」

不用学前端编程,你就能用 Python 简单高效写出漂亮的交互式 Web 应用,将你的数据分析成果立即展示给团队和客户。

1

痛点

从我开始折腾数据分析工具的那一天,就没有想明白一件事儿 —— 为什么我打算把数据分析的成果做成一个应用,这么难?

其实我需要的核心功能,无非是在网页上接收用户输入,然后做分析处理,把分析结果反馈给用户,完事儿。

可是这谈何容易?

很多人都会笑着告诉你,这得学前端编程, HTML + Javascript 了解一下吧!

什么?你还需要在后台做数据分析?那你就得学 Web 框架了。

你说喜欢 Python ?那就学个 Django 或者 Flask 好了。

我也不是没有看过 Django 和 Flask 的教程,还曾经付费学习过。光是配置环境,就得循序渐进学一堆东西。作为学习的中间成果,我还写了这篇《如何用 Python 做 Web 开发?——Django 环境配置》分享给你。

问题是我在学习中,提不起真正的兴趣。

因为教程里讲的那些功能,我根本不关心。

核心的功能,我早已实现了。我只是希望把输入输出弄成网页形式,方便用户来用。

我为什么要理解那么多的概念?为什么一定要跟那么繁重的数据库操作打交道?为什么几乎所有的样例,都要教我如何做一个 blog ?

我要是想用 blog ,可以直接注册一个免费的啊!难道我要自己开发?

你的教程为什么不干脆教我怎么把数据科学的分析结果,利用这些技术快速变成一个产品?

但是人家写书和做教程的人,就是不疾不徐,坚持一定要教会你,如何做一个 blog 出来……

我仿佛看见达芬奇的老师教学生画鸡蛋一样。

我相信,这绝不仅仅是我一个人的痛点。

我们都希望尽快把数据分析结果,或是其他的交互功能发布出来,和用户交流。但是因为缺乏这样的简单 Web 包裹,我们不得不每次都给别人展示一个包含了代码的 Jupyter Notebook 。

那些不懂编程的用户,看到代码,就会觉得不适。再看到改变一个输入都需要编程(其实就是改语句中的一个赋值),立刻就决定不玩儿了。

万万没想到,这个痛点,如此容易就解决了。

尝试

我用纯 Python 脚本写了个 Web 应用。

我编写的程序里,没有一丝半毫的 Web 框架,Javascript,甚至是 HTML 。

这玩意儿能用吗?

你自己来试试看。

请你打开浏览器,输入以下链接:

你会看到下面的初始化界面。

1

初始化完毕之后,页面会分成左右两栏。左面是两个下拉候选框,分别让你指定需要分析的数据范围。

1

上面一个,是事件类型;

1

下面一个,是事件发生归属地。

1

只不过,当时我们更注重的,是用循环神经网络搭建了一个严重拥堵事件预测模型。

1

而今天,我们是要进行探索性数据分析,也就是根据我们感兴趣的目标,对数据进行整理操作,然后可视化显示。

1

选定之后,你会看到右侧提示两个信息:

你筛选之后,数据框包含行数;

在层叠地图上的可视化结果。

1

怎么样?

麻雀虽小,五脏俱全。

虽然咱们这个 Web 应用很简单,不过交互分析该有的功能和流程,基本上都涵盖了。

你可能会问:

王老师,编这么一个应用出来,不简单吧?

学完这篇教程,你就能自己开发出这样一个应用来。

幕后

我把这个应用的全部源代码,都为你存储到了 Github 上。请你访问这个网址获取。

1

可以看到,一共包含了 4 个文件。

有意思的是,其中 3 个,包括:

Procfile

setup.sh

requirements.txt

都只是部署到远程服务器时,需要用到的配置文件而已。

这些文件的具体使用方法,咱们后面会说明。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值