1. 程式人生 > >《利用python進行資料分析》讀書筆記之案例一:來自bit.ly的1.usa.gov資料

《利用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]

               

         (1) 想知道該資料集中最常出現的是哪個時區:先要得到表示時區的資料,然後再計數:          

     time_zones=[rec['tz'] for rec in records if 'tz' in rec] #加if是因為並不是所有記錄都有時區欄位
         結果是:

         

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

         結果是:

              

           (2) 將資料轉換成DataFrame資料結構

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

             

        (3) 在dataframe中用來計數的可以使用value_counts函式,返回得到的是Series物件

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

         結果是:

       

    
         可以看到上述的資料展示中有缺失值,fillna函式可以用來替換缺失值(NA),而未知值可以通過布林陣列索引            加以替換:

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

         結果是:

        

        (4) 可以得到一張水平條形圖:

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

       結果是: