《利用Python进行数据分析》学习笔记 第14章 数据分析案例

第14章 数据分析案例

14.1 来自Bitly的USA.gov数据

2011年,URL缩短服务Bitly跟美国政府网站USA.gov合作,提供了一份从生成.gov或.mil短链接的用户那里收集来的匿名数据。在2011年,除实时数据之外,还可以下载文本文件形式的每小时快照。

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

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

现在,records对象就成为一组Python字典了:

  • 用纯python代码对时区进行计数

想要知道该数据集中最常出现的是哪个时区(即tz字段),先用列表推导式取出一组时区,但并不是所有记录都有时区字段,这时只需在列表推导式末尾加上一个if ‘tz’ un rec判断即可: 

对时区计数,有两个办法,一个较难(只使用标准Python库),另一个较简单(使用pandas)。计数的办法之一是在遍历时区的过程中将计数值保存在字典中: 

使用python标准库的更高级工具,简化代码: 

将逻辑写到函数中是为了获得更高的复用性,要用它对时区进行处理,只需将time_zones传入即可: 

想要得到前10位的时区及其计数值,需要用到一些有关字典的处理技巧: 

collections.Counter类,可以使这项工作更简单: 

  • 用pandas对时区进行计数

从原始记录的集合创建DateFrame,与将记录列表传递到pandas.DataFrame一样简单,这里frame的输出形式使摘要视图(summary view),主要用于较大的dataframe对象:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值