知乎数据可视化

前段时间不知道从哪里弄来的一份知乎数据,数据量很少,只有二十万的样子,今天就以这二十万数据来进行一次简单地数据可视化,主要的工具就是两个:pandas和matplotlib。
如下相关的代码和示例数据在文末有相应的下载连接,你能够下载数据本身尝试。git

实际上,你也可使用BI软件进行分析,速度和可视化效果很好,最主要的是操做相对容易,可是咱们拿到的这份示例数据并不规整,也就是有部份内容是乱的,爬虫爬下来的数据有错位的状况,所以对于数据的清洗须要必定的时间,为了方便,咱们就直接编程实现。github

导入数据

咱们使用jupyter notebook做为咱们的ide工具
首先来看一下咱们的原始数据的样子。正则表达式

咱们习惯于使用英文做为咱们的列索引,所以咱们在导入数据的时候指定索引的名称,以下所示。编程

其中,%matplotlib inline指定咱们的plt作的图嵌入在ide之中,而不是弹窗显示。
其结果以下所示,后面还有数据列,只是截图容不下了。ide

知乎用户高校分布状况

咱们首先来看一下哪些高校的知乎用户数量最多,核心思路就是咱们对高校进行计数,而后按照数量进行降序排序,选择选取前十位进行绘图表示。在实际操做的过程总,我发现了一个问题,计数结果排名比较靠前的数据中有一些是诸如”大学“, ’大学本科‘这样的数据,显然咱们须要先将其去掉。
咱们自定义一个函数,若是其学校填写的是某一些特定的数据,咱们就将其置为空。
由于咱们只须要排名靠前的大学,那些名字更加奇葩的咱们就无论了,毕竟咱们用不到。函数

下面就直接开始绘图了。工具

其结果以下3d

一眼望过去,你会发现全是985高校,真是着实让人悲伤。
既然那么多的985,那么咱们下一步的思路就是,看一下985的人数在总人数中所占的比例。code

985高校用户占比

思路就是咱们定义一个函数,若是这所学校是985的话,咱们就给他一个记号为1,若是不是就为0,为何是1/0而不是其余的呢,待会咱们做图的时候你就知道了。blog

看一下效果

检查一下是否是已经彻底的实现了标记状况。

直接开始绘图吧

简单地解释一下clean_name.name = ''在绘制饼图的时候,Series的name会默认以标签的形式出如今饼图的左边,好好的一个饼图,左边多了一个label显然是不美观的,所以咱们直接将Series的name去掉,你能够尝试注释掉这一行,来看一下会是什么样子。

从上面的饼图能够看到,虽然985高校只有34所,可是其占比达到了1/4,真是让人怀疑这些高校的学生是否是人手一个知乎App。

回答数Top10

这个地方就出现了数据混乱的状况,按理说,回答都是整数,可是这里面的部分数据出现了值为汉字的状况,所以,要想进行下一步的分析,只能先对这些数据进行处理。
使用正则表达式,将非数字所有替换为0,最后把这一列的数据类型转换成整型。

咱们这里将用户名做为咱们的索引,方便下一步的绘图。

知乎性别比例

词云展现

最后,咱们将以上数据中所呈现的专业进行一下词频统计,并制做出词云。

计算机,金融完胜。

既然作到这了,顺便在看一下这些大V的就任公司。

作的很是的粗糙,看到的同窗请见谅。
你能够去github下载以上的代码和相应的数据。

github地址: https://github.com/cnkai/data-visualization.git
相关文章
相关标签/搜索