美文网首页
数据分析案例--USA.gov数据

数据分析案例--USA.gov数据

作者: owolf | 来源:发表于2018-07-27 14:48 被阅读58次

    本章节以及后续章节的源码,当然也可以从我的github下载,在源码中我自己加了一些中文注释。

            来自Bitly的USA.gov数据 ,文件中各行的格式为JSON(即JavaScript Object Notation,这是一种常用的Web数据格式)。例如,如果我们只读取某个文件中的第一行,那么所看到的结果应该是下面这样:

            Python有内置或第三方模块可以将JSON字符串转换成Python字典对象。这里,我将使用json模块及其loads函数逐行加载已经下载好的数据文件,records对象就成为一组Python字典了:

    一、用纯Python代码对时区进行计数

    假设我们想要知道该数据集中最常出现的是哪个时区(即tz字段)

    计数的办法是在遍历时区的过程中将计数值保存在字典中:

    这样写会使get_counts函数更简洁

    得到前10位的时区及其计数值:

    另一种更快捷的方法:

    二、用pandas对时区进行计数

    1、把数据建成表

    下图是DataFrame格式的frame表:

    2、计算时区数量

            frame['tz']所返回的Series对象有一个value_counts方法,计算每个时区出现的数量,从大到小排列:

    3、填充缺失值

            fillna函数可以替换缺失值NA,而未知值(空字符串)可以通过布尔型数组索引加以替换

    4、常出现的10个时区进行绘图

     usa.gov示例数据中最常出现的时区 usa.gov示例数据中最常出现的时区

    5、分离出浏览器

            a字段含有执行URL短缩操作的浏览器、设备、应用程序的相关信息:

    6、统计各个浏览器出现的数量

    7、按照Windows和非Windows用户对时区统计信息进行分解

    (1)由于有的agent缺失,所以首先将他们从数据中移除,其次根据a值计算出各行是否是Windows

    (2)根据时区和新得到的操作系统列表对数据进行分组

    (3)分组计数,通过size()对分组结果进行计数,并利用unstack对计数结果进行重塑

    (4)我们来选取最常出现的时区。为了达到这个目的,我根据agg_counts中的行数构造了一个间接索引数组:

    (5)通过take按照这个顺序截取了最后10行最大值:

    (6)做柱状图

    最常出现时区的Windows和非Windows用户  

    (7)上图不太容易看清楚较小分组中Windows用户的相对比例,因此标准化分组百分比之和为1:

    快速学习:

    第一节 NumPy基础(一)

    第二节 NumPy基础(二)

    第三节 Pandas入门基础

    第四节 数据加载、存储

    第五节 数据清洗

    第六节 数据合并、重塑

    第七节 数据聚合与分组运算

    第八节 数据可视化

    第九节 pandas高级应用

    第十节 时间序列

    第十一节 Python建模库

    数据分析案例--1880-2010年间全美婴儿姓名的处理

    数据分析案例--MovieLens 1M数据集

    数据分析案例--USA.gov数据

    数据分析案例--2012联邦选举委员会数据库

    数据分析案例--USDA食品数据库

    相关文章

      网友评论

          本文标题:数据分析案例--USA.gov数据

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