數據分析入門——美國各州人口分析

1.案例數據來自python數據分析手冊,github地址:https://github.com/jakevdp/PythonDataScienceHandbook/tree/master/notebooks/datahtml

        不克隆項目,怎麼在github下載單個文件?:http://www.javashuo.com/article/p-ygpobtzy-kv.htmlpython

2.pandas讀取文件,參考:http://www.javashuo.com/article/p-dvemruln-dr.htmlgit

1.導入三劍客的包:github

  

2.讀取數據:函數

   read_csv能夠讀取1G的數據(excel沒法打開)spa

   讀入各州縮寫:.net

   

  讀入各州面積:3d

  

  讀入各州人口:excel

  

3.合併pop和abbr兩個dfhtm

  使用簡稱,合併全稱,可知,須要使用merge:

  而且,左右兩列沒有相同columns,須要使用left_on/right_on來進行限定;

  

  因爲默認使用的是內鏈接,因此經過shape發現會有部分未鏈接上的數據,經過how,能夠控制內外鏈接方式:

  

  //使用right右鏈接,也會出現2448,緣由是雖然右表只有51條,可是左表有多條對應,會出現一對多

   發現用於鏈接的列,有重複的列,咱們能夠使用drop進行刪除一列:經過axis控制,咱們就刪除了一列:

  

  可是特別注意,drop返回的是刪除後的新DF,原先的DF未改變(這點能夠經過看控制檯是否輸出了內容,有輸出時則是返回了新的數據,沒有則是在原基礎上修改)

要想在原基礎上修改,須要控制inplace參數:

  

  

  經過isnull()返回和原先形狀相等的df,再經過any看哪一列有空值:

  

   進一步,經過空值操做,能夠查看具體哪些州有數據缺失:(經過unique來查看惟一值)

  

  下一步,使用正確的值,填充這些缺失值:(經過boolean值來進行篩選,注意boolean這個Series的產生)

  

  USA的處理,同理:

  

  驗證結果:(能夠發現state已經沒有空值)

  

4.合併pop和areas兩個df

  一樣,使用merge:(注意這裏使用left合併)

  

  繼續使用isnull()來檢測空值:

  

  發現area有空值,咱們繼續使用上面相似的方法,空值檢測並填充:

    具體這裏是先檢測area列的bool值,再經過pop3取到哪些state是空:

  

    能夠經過dropna來刪除含有空數據的行:(dropna的文檔注意查看)

  

    檢查空值處理結果:

    

5.使用query查找數據

  使用query來進行數據檢索:https://blog.csdn.net/tcy23456/article/details/85887334

  

  對查詢結果進行索引重排,使用set_index,使得state成爲新的Index:(注意經過inplace控制替換原值)

  

  經過計算,返回人口密度的series:

  

  經過sort_values進行數據排序:

    進一步的,能夠經過切片或者tail()函數取最小的幾個,取top幾

  

  使用merge,能夠將計算出的密碼,融合進去人口結果集:

    此處須要將Series轉換爲df再計算:

  

相關文章
相關標籤/搜索