学习笔记数据分析实战-bitly data

1,160 阅读1分钟

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

数据下载地址:

github.com/d1m0n172/GG…【example.txt(文件名)】

不知道怎么让编辑器读取数据的小伙伴建议首页看一下之前写的的文章

首先我们先把数据导入进行分析

from numpy.random import randn 
import numpy as np
import os 
import matplotlib.pyplot as plt 
import pandas as pd

path = 'example.txt'#通过path读取数据

open(path).readline()#读取文件第一行数据



import json 
path = 'example.txt'
records = [json.loads(line) for line in open(path)]
#loads之前在numpy里面是读取的函数
#现在recoeds对象就成为一组python字典了

records[0]#查看数组中的值
records[1]




假设我们想分析数据里面的时区(tz字段)想从里面提取什么信息

import pandas as pd #先调用pandas
frame = pd.DataFrame(records)#从原始集合创建数据帧(dataframe)
#将records数组里面的值传递给frame
frame.info()#使用info查看frame函数的基础数据特性信息





tz_counts = frame['tz'].value_counts()#赋值给计时器
#pandas 的value_counts()函数可以对Series里面的每个值进行计数并且排序
tz_counts[:10]#切片



clean_tz = frame['tz'].fillna('Missing')
clean_tz[clean_tz == ''] = 'Unknown'
tz_counts = clean_tz.value_counts()
tz_counts[:10]
#对数据里面的缺失值进行重构
#fillna函数可以替换缺失值(NA),而未知值(空字符串)则可以 通过布尔型数组索引加以替换


#用matplotlib可视化这个数据
import seaborn as sns #用seaborn包创建水平柱状图
subset = tz_counts[:10]
sns.barplot(y=subset.index, x=subset.values)



通过数据分析得出结论时区美国/纽约的用户是最多的