(學習筆記)利用python進行數據分析(二):一些範例數據集
在日常工作中,數據處理類的任務主要包括以下幾類:
與外界進行交互:讀寫各種數據文件及資料庫。
準備工作:對數據進行清理、修整、整合、規範化、重塑、切片切塊、變形等處理以便於進行分析。
轉換:對數據集進行數學統計運算產生新的數據集。(比如根據分組變數對一個大表進行聚合)
建模和計算:將數據與統計模型、機器學習演算法或其他計算工具聯繫起來。
展示:創建互動式或靜態的圖片或文字摘要。
利用pandas對http://1.usa.gov數據時區進行計數:
DataFrame是pandas中最重要的數據結構,用於將數據表示為一個表格:
frame[tz]返回的Series對象有一個value_counts()方法,該方法統計Series中詞條出現的頻率,並按頻率降序排列:記錄中缺失值可以用fillna函數替換,未知值可以用布爾型數組索引替換:然後可以利用繪圖庫(matplotlib)的plot方法為這十條數據生成一張水平條形圖。(注意ipython一定要以pylab模式打開,否則以下代碼無效)條形圖如下,統計.http://usa.gov數據中最常出現的時區:還可以對這種類型的數據進行許多處理,以a欄位為例,我們可以將a欄位的第一節分離出來,得到一份用戶行為摘要:
現在可以按照Windows和非Windows用戶對時區統計信息進行分解:
接下來就可以按照時區和操作系統對數據進行分組,計數,重塑:下面選取最常出現的時區:然後我們使用stacked=True生成一張堆積條形圖:為了看清較小分組中Windows用戶的比例,可以將各行規範化為「總計為1」,重新繪圖:MovieLens 1M數據集
該數據集是一組電影評分數據,分為三個表:評分、用戶信息和電影信息,可以通過pandas.read_table將每個表讀到一個DataFrame對象中:
利用merge函數將所有數據合併到一個表中,並根據性別計算電影的平均得分:過濾掉評分數據不足250條的電影,並了解女性觀眾最喜歡的電影(對F列降序):找出男性和女性觀眾分歧最大的電影:
找出分歧最大的電影(不考慮性別),可以計算得分的方差或標準差:1880-2010全美嬰兒姓名
該數據集按年度分割成了多個文件,利用pandas.concat將所有數據組裝到一個DataFrame里,並加上一個year欄位:
將names數據在sex和year級別上進行聚合:
插入一個prop列,用於存放指定名字的嬰兒數相對於總出生數的比例:
驗證所有分組的prop總和是否為1:
為了便於進一步分析,取出該數據的一個子集:每對sex/year組合的前1000個名字:接下來的數據分析工作就針對這個top1000數據集了。幾個男孩和女孩名字隨時間變化的使用數量:
接下來還可以分析命名趨勢,命名多樣性的變化等,這裡由於對pandas方法還不是很熟悉,就不一一試驗了。這一章主要給出了一些示例數據集,並講解了一下我們能對這些數據集做什麼,僅僅提起我們對數據分析的興趣,後續章節還會對本篇使用的方法進行具體講解。
推薦閱讀:
※如何用python的sklearn的機器學習,實現簡單線性回歸分析?
※R語言實戰第八章:回歸
※大數據之數據分析精進之路:起跑
※零基礎學習Python數據分析:科學計算庫NumPy(2)