《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据

            从网上下来的数据文件,先读取文件中的第一行查看是什么数据类型     

     path="usagov_data.txt"  
     open(path).readline() 
         结果是:

         

        从上面的数据格式可看出是json格式,在python中有许多内置或第三方模块可以将json转化成python的字典对             象,将使用json模块及loads函数逐行加载该数据文件:      

    import json
    path="usagov_data.txt"
    records=[json.loads(line) for line in open(path)]
       结果是:这只是records[0]

       《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据_第1张图片        

         (1) 想知道该数据集中最常出现的是哪个时区:先要得到表示时区的数据,然后再计数:          

     time_zones=[rec['tz'] for rec in records if 'tz' in rec] #加if是因为并不是所有记录都有时区字段
         结果是:

         《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据_第2张图片

     from collections import Counter
     counts=Counter(time_zones)
     counts.most_common(10)

         结果是:

              《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据_第3张图片

           (2) 将数据转换成DataFrame数据结构      

     import pandas as pd
     import numpy as np
     frame=pd.DataFrame(records)
           结果是:

         《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据_第4张图片    

        (3) 在dataframe中用来计数的可以使用value_counts函数,返回得到的是Series对象       

     tz_counts=frame['tz'].value_counts()

         结果是:

        《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据_第5张图片    
         可以看到上述的数据展示中有缺失值,fillna函数可以用来替换缺失值(NA),而未知值可以通过布尔数组索引            加以替换:
      

     clean_tz=frame['tz'].fillna('Missing')
     clean_tz[clean_tz=='']='Unknown'
     tz_counts=clean_tz.value_counts()

         结果是:

        《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据_第6张图片

        (4) 可以得到一张水平条形图:   

    import matplotlib.pyplot as plt
    tz_counts[:10].plot(kind='barh',rot=0)
    plt.show()

       结果是:

       《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据_第7张图片 

   

                

                 
 
 

你可能感兴趣的:(python)