美文网首页
matplotlib数据可视化分析——知乎用户地区构成及关注行为

matplotlib数据可视化分析——知乎用户地区构成及关注行为

作者: 随风去吧zZ | 来源:发表于2018-04-23 21:31 被阅读0次

    现有数据:

    1.第六次人口普查各地常住人口
    2.2017年知乎用户基本信息

    分析目标:

    1.知乎用户地区分布状况,筛选知友数量分布top20地区。
    2.结合常住人口数据,统计出知友密度最高的top20地区。
    3.根据关注情况,查看各大学校友相互关注的程度。

    导入工具包,读取数据:

    读取数据

    知乎用户数据有缺失值需要清洗,另外 居住地 字段不包含“省”、“市”字样。这里留意,后面会提到。

    知乎用户数据概览
    人口普查数据中可以观察到,在各省份常住人口总和之后,紧跟着的是该省份各市人口的统计量。
    人口普查数据概览

    数据清洗、合并、标准化处理

    定义函数data_cleaning(df),对缺失数据填充,对于“object”类型字段填充“缺失数据”字样,其他类型一律填充0.

    数据清洗函数
    运行函数,清洗知乎数据data1,并查看结果:
    数据清洗并查看
    统计居住地字段值的个数,并查看前21条。 地区知友数
    上图可以看到,第一行是缺失数据,可通过索引号[1:]剔除。由于该行代码是Series类型,可将其转化为Dataframe。
    结合普查人口数据,可将两个表连接,以便矩阵计算求地区知友密度。需要注意的是,知友居住地字段是不含“省”“市”字样的,故需要对普查人口数据清洗后才可将两个表连接。
    首先,对普查人口数据data2的地区字段进行两次字符替换,采用df[colunms].str.repalce(old,new,count)的方法,替换后的字段放入新增加了所在地列。
    普查人口数据清洗
    将两表通过地点连接,生成合并后的新列表merge
    通过地点将两表连接
    知友数量知友密度字段做标准化处理:
    采用公式:标准化计算结果 = (X - Xmin) / (Xmax - Xmin)

    设置自定义函数standard(df,col),并返回一个新生成的标准化处理后的字段col_std。运行两次函数,并查看函数运行后的合并列表。

    标准化处理
    上图输出结果,index是数据编号,通过set_index()方法将所在地字段变为新的index,并查看结果。另外,将标准化处理后的两个字段按降序排列,并选取top20。
    所在地变为index

    图表绘制

    为每个柱子上添加字符,该字符是保留两位小数后的对相应字段标准化处理后的结果。

    图表绘制 1.png

    关注者人数表示某校用户的个人粉丝数,关注人数表示某校用户所关注的人数。按照教育经历即用户所在学校名称分组,并对粉丝数和关注人数求和。然后按照"关注","关注者"两个 字段降序,根据输出的结果将其中不合适的行删除。

    image.png
    drop删除不合适的行

    画图:

    点的大小用粉丝数量衡量,点越大,粉丝数越多。
    颜色深浅表示关注人数的多寡。
    红绿辅助线分别标出粉丝数和关注人数的平均数。

    2.png

    由上图可得出结论:浙大用户的粉丝数最多。武汉大学的用户关注他人最多,华中科技大、北大、浙大次之。

    相关文章

      网友评论

          本文标题:matplotlib数据可视化分析——知乎用户地区构成及关注行为

          本文链接:https://www.haomeiwen.com/subject/bhmklftx.html