数据分析2-1

来源:互联网 发布:iphone6sp设置铃声软件 编辑:程序博客网 时间:2024/06/03 12:55
  1. 打开文件:path=’E:/usagov_bitly_data2012-03-16-1331923249.txt’
  2. open(path).readline():查看文件的第一行
  3. Json模块:使Json字符串转换成Python字典对象:
    import json
    path = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt'
    records = [json.loads(line) for line in open(path)]

    因为文件中的内容为{…}{…}{…}所以每一个line就是一个{…}
  4. 选出含有’tz’字段的时区:time_zones=[rec[‘tz’] for rec in records if ‘tz’ in rec]
  5. DataFrame是pandas中最重要的数据结构,它用于将数据表示为一个表格:
    import pandas as pd; import numpy as np;import matplotlib.pyplot as plt
    from pandas import DataFrame, Series
    frame=DataFrame(records)
    (此时,frame为一张表格,包含所有此段出现的统计次数)
    这里写图片描述
    (其中’tz’字段出现3440次,因为‘tz’字段的值不唯一,有可能为America/New_York,也有可能为America/Denver ,所以显示为non-null values(不明确的值))

  6. 将前10名输出图表格式:先给记录中未知或缺失的时区填上一个替代值。fillna函数可以替换缺失值(NA),而未知值(空字符串)则可以通过布尔型数组索引加以替换
    clean_tz=frame['tz'].fillna('Missing')
    clean_tz[clean_tz=='']='Unknown'
    tz_counts=clean_tz.value_counts()
    **tz_counts[:10].plot(kind='barh', rot=0)**

    此时plt.show()将tz_counts[:10].plot(kind=’barh’, rot=0)的输出转换为图表。
    这里写图片描述

  7. DataFrame输出一张完整的表格
    这里写图片描述
    这里写图片描述
    frame[‘tz’]输出完整表格中属于’tz’的那一部分
    这里写图片描述
    所以下面代码整行都会改成unknown,就会影响统计结果,而不是像我们希望的像frame[‘tz’]那样只有属于‘tz’才会变成unknown。
    本来应该是windows 和not windows各占一部分,但由于整行都改变了,所以只有not windows