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

作者: 皮皮大 | 来源:发表于2019-06-17 14:59 被阅读1次

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

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

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

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

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

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

    matplotlib

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

    Scipy

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

    image.png 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

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