用Python做一份好看又好用的数据分析报告

背景

虽然用Python开发爬虫脚本,顺利把某房产网站的数据给爬取下来了,但是我朋友老板安排的工作并没有完成,我们还需要对这份数据进行分析并生成分析报告,所以,这篇文章就接着上篇文章,讲解一下,如果用Python做一份好看又好用的数据分析报告。

Python库的选择

话说,工欲善其事,必先利其器,虽然我们已经选择Python来完成剩余的工作,但是我们需要考虑具体选择使用Pytho的哪些利器来帮助我们更快更好地完成剩余的工作。

我们可以看一下,在这个任务中,主要涉及到四类工作要完成:

  1. csv文件的读取;

  2. 对读取的数据,按照我们要分析的指标进行数据处理和指标计算;

  3. 根据数据分析的结果,生成可视化的数据图表;

  4. 通过web页面展示数据分析结果报告;

我们下面就根据这四类工作,来看看我们分别选择Python的哪些库来帮助我们完成工作。

1.数据处理和分析库

对类似csv、excel等格式文件的读取和处理,其实就是对一维和二维数据的处理,对此类数据的处理,Python中常用的库是Pandas,其提供的数据结构中的Series对应一维数据,DataFrame对应二维数据,同时Pandas也提供了大量的高效内置函数和操作来实现对内存中一维和二维数据的处理。

而对于更高维度数据比如矩阵的计算,Python中则需要用Nunpy库来完成。numpy是以矩阵为基础的数学计算模块,提供高性能的矩阵运算,数组结构为ndarray,可以把它看作是多维数组(ndarray)的容器,可以对数组执行元素级计算以及直接对数组执行数学运算的函数。

Pandas是基于Numpy数组构建的,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的,比较契合统计分析中的表结构,而numpy更适合处理统一的数值数组数据。

所以,第1步和第2步的工作,我们基本依靠Pandas库就能完成,不过,这次的数据分析报告中,我也用到了Numpy库的直方图计算的功能,后面会详细讲到。

2.数据可视化库

而第3步的工作,其实是一个数据可视化的任务,在Python中可以用于进行数据可视化的库,常用的主要有三个:

  • Matplotlib

  • Seanborn

  • Pyecharts

Matplotlib

Matplotlib可以说是Python数据可视化库的鼻祖了,他是Python编程语言及其数值计算包NumPy的可视化操作界面,其中pyplot是matplotlib的一个模块,提供了类似MATLAB的接口。其可以和Numpy、Pandas无缝结合,但一些图标的样式不够美观,而且原生不支持生成动态可交互的图表,虽然可以通过改变使用的后端来实现,但相对还是比较麻烦一些,而且如果想要在一个web页面中实现一个动态可交互的图表,目前没有什么特别好的办法,最近matplotlib在更面向web交互方面有了很多进展,比如新的HTML5/Canvas后端,可以从如下地址了解一下:

http://code.google.com/p/mplh5canvas/

但还没有完全完成。

Seanborn

Seaborn跟matplotlib最大的区别就是它的默认绘图风格和色彩搭配都具有现代美感,其实他是在matplotlib的基础上进行了更高级的API封装,让你能用更少的代码去调用matplotlib的方法,从而使得作图更加容易。但matplotlib存在的动态交互性的问题他同样存在。

Pyecharts

说到Pyecharts则不得不提到ECharts,这个可是在前端数据可视化领域非常知名的库了,毕竟他出自我的老东家百度的前端工程师之手,最开始在百度内部孵化,我在百度工作期间,还和后来参与到ECharts开发的核心工程师有过其他项目合作。后来2018年捐赠给Apache基金会,成为ASF孵化级项目,并于2021年正式毕业,成为Apache顶级项目。

而Pyecharts则是基于ECharts实现的python版本,支持大量丰富的可视化图表类型,而且相比前两个库最大的优势在于,能够非常方便地生成支持交互性(如鼠标点选、拖拽、缩放等)的图片,且可动态地展示在web页面上。

基于以上的对比分析,鉴于这次我希望给我朋友生成一个动态可交互的web数据分析报告页面,在这一点上,Pyecharts无疑更有优势,于是这次我们就用Pyecharts库来进行我们的数据可视化展现。

3.Web应用库

在这个领域Python的选择主要有两个:

  • Django

  • Flask

Django是用 Python 开发的一个免费开源的 Web 框架,提供了许多网站后台开发经常用到的模块,本身自带了相当多的功能,这些功能是由官方和社区共同维护的,因而是个大而全的较重的框架,所以耦合度相比flask会高一些,做二次修改难度更高。

相比之下,Flask是一个免费的开放源代码的轻量型的Web框架,Flask不包含例如上载处理,ORM(对象关系映射器),数据库抽象层,身份验证,表单验证等web应用常用功能模块(这些Django提供了),但是可以使用预先存在的外部库来集成这些功能,因此是一个更灵活、扩展性更好的Web框架。

而我们这次的场景,仅仅只需要提供一个静态的web页面用于展示数据可视化结果,并不涉及其他复杂的web应用功能,因此,Flask是我们的不二之选。

Python经验分享

学好 Python 不论是就业数据分析还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

你可能感兴趣的:(python,数据分析,开发语言,爬虫,人工智能)