《利用Python进行数据分析》札记1

本书主要讲解的是利用Python进行数据控制、处理、整理、分析等。书中所指的数据为:

  • 多维数组矩阵
  • 表格型数据,各列可能含有不同类型的数据(字符串、数值、日期等)
  • 保存在关系型数据库中或以制表符/逗号分隔符的文本文件中的数据
  • 通过关键列相互联系的多个表
    源码地址

Numpy
NumpyPython科学计算的基础包。主要功能有:

  • 快速高效的多维数组对象ndarray
  • 用于对数组执行元素级计算
  • 直接对数组执行数学运算的函数
  • 线性代数运算、傅里叶变换、随机数生成等
  • 用于将C\C++\Fortran代码集成到Python的工具

pandas
pandas兼具Numpy高性能的数组计算功能以及电子表格和关系型数据(SQL)等灵活的数据处理功能

  • 提供了复杂精细的索引功能:重塑、切片、切块、聚合、选取数据子集等操作
  • 提供了大量处理结构化数据的函数
  • pandas中的对象是DataFrame,它是面向列的二维表结构,含有行标和列标
  • 金融行业:提供了大量适用于金融数据的高性能时间序列功能和工具

matplotlib

  • 最流行的用于绘制图表的Python库
  • 提供良好的交互式数据绘图环境
  • 绘图环境也是交互式的,在绘图窗口中的工具栏能过对图标进行各种处理

Scipy

Scipy是一组专门用来解决科学计算中各种标准问题域的包的集合,主要的包有:

《利用Python进行数据分析》札记1_第1张图片
image.png
《利用Python进行数据分析》札记1_第2张图片
image.png
import  json
from collections import defaultdict  # 导入默认字典,值全部为0
from collections import Counter   # 导入计数器

path  = "D:/Python/datalearning/pydata-book/datasets/bitly_usagov/example.txt"
# res =  open(path).readline()    读取文件中的一行数据
records = [json.loads(line) for line in open(path)]   # 通过json模块的loads()函数将json格式的文件转换成Python字典形式,再读取数据
time_zones = [rec['tz'] for rec in records if 'tz' in rec]   # 不是所有的记录都有时区段,需要加上判断语句
# print(time_zones[:10])    查看前10个时区记录

# 实现计数功能,将计数值保存在字典中
def get_counts(sequence):
    counts = {}
    for x in sequence:       # 先判断x是否在sequence中
        if x in counts:
            counts[x] += 1   # 如果存在,则值自动加1
        else:
            counts[x] = 1    # 如果不在,则将x对应的value赋值成1
    return counts


def get_counts1(sequence):
    counts = defaultdict(int)   # 将字典中所有的值初始化为0
    for x in sequence:
        counts[x] += 1     # 当x在sequence中,则counts的值自动加1;
    return counts

# 获取前10位的时区及计数值
def top_counts(count_dict, n=10):
    value_key_pairs = [(count, tz) for tz, count in count_dict.items()]
    value_key_pairs.sort()        # sort()函数默认是升序排列
    return value_key_pairs[-n:]   # 从索引为-10到最后索引为-1,10个数据


# 通过标准库来实现
counts1 = Counter(time_zones)     # 应用collections.Counter类
print(counts1.most_common(10))
print("-------------------")

counts = get_counts(time_zones)
print(top_counts(counts))
# print("time_zones:", counts)
# print("time_zones:", get_counts1(time_zones))
print(counts['America/New_York'])
print(len(time_zones))

你可能感兴趣的:(《利用Python进行数据分析》札记1)