Pandas 基本操作
数据来源
本系列参考的书目是
用到的数据来自 https://github.com/pydata/pydata-book
处理 usa.gov 数据
该数据内容是 JSON 对象的集合, 文件的每一行都是一个JSON 对象, 比较膈应没法直接使用 Pandas 的 read_json, 需要走一个弯路
import pandas as pd
import json
import matplotlib.pyplot as plt
%matplotlib inline
# 数据的路径, 自行从 github 下载到本地
data_path = '/foo/bar/data.txt'
# 将数据逐行解析
json_data = [json.loads(line) for line in open(data_path, 'r')]
# 转化为 DataFrame 格式
df = pd.DataFrame(json_data)
统计每个时区的数量
df的"tz" (time zone)字段表示的是该记录来自哪个时区, 下面使用 pandas 进行统计
# 先进行数据清洗, 填充缺失值 (空值)
clean_tz = df['tz'].fillna('Missing')
# 填充空字符串
clean_tz[clean_tz == ''] = 'Unkown'
# 将TOP10画出来, 其中 rot 参数表示 Label 旋转的角度, rotation 的缩写
clean_tz.value_counts().head(10).plot(kind = 'barh', rot = 0)
统计浏览器信息
df的"a"(agent) 字段表示用户所使用的浏览器等详细信息, 可以通过截取它的第一个单词获得其浏览器的种类
agents = pd.Series([a.split(' ')[0].split('/')[0] for a in df['a'].fillna('Unkown')])
agents.value_counts().head(5).plot(kind = 'barh', rot =