陳新龍
我們可以在一些面向白領的編程培訓廣告中看到,僅用幾節課學會Python之后,五分鐘就可以把領導分派的幾百張Excel表格處理完畢,這就是利用了Python的數據分析功能……
一、 數據分析簡介
數據分析是指用適當的統計分析方法對收集來的大量數據進行分析,將它們加以匯總和理解并消化,以求最大化地開發數據的功能,發揮數據的作用。數據分析是為了提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程。
而Python能成為受歡迎的編程語言最主要的原因是它的簡單易學。與其他語言相比,Python的語法很簡單,幾天就可以掌握它的基礎知識。即使在學習其他語言(例如C++、Java)之后,開發者通常還是更喜歡使用Python。因為Python庫幾乎可以滿足所有開發需求。所以,庫和簡單的語法讓使用Python進行開發既簡單又高效,也讓其成為適合初學者的語言。
我們也要跟隨著知識潮流的腳步,電腦報也會逐步和大家分享一些數據分析的技巧,在基本掌握Python后將其應用到實際工作中解放自己的生產力。
在學好Python的基礎知識后,初學數據分析可以使用兩款開發工具Pycharm或Jupyter Notebook。大致上從數據類型開始學習,深入到數據處理分析,再到圖形輸出。每一部分都有很多知識點,希望能在未來的日子里和大家一起學習進步。
今天就通過實例體會一下數據分析的簡單過程吧。下面我們根據班級學生基本情況表來分析班級中的男女生比例,并畫出餅圖來。雖然例子只處理了一張簡單的表格,但是當我們使用Python作為數據分析工具時,就可以快速處理大量的表格和數據(圖1)。
二、 開發工具簡介
Pycharm和Jupyter Notebook是我們用來編寫數據分析程序的常用開發工具,兩者各有優勢。
Pycharm是一款功能強大的Python開發環境,有大量的庫為數據分析和處理提供了完整的工具集,但在使用過程中,需要手動安裝需要的庫。在用于數據分析時Pycharm更全能,采用了更具創新性的實現算法,還能和其他語言對接,例如與C語言對接彌補Python運行效率不高的問題。
Jupyter Notebook是基于網頁的用于交互計算的應用程序,它是一個性能強大的終端可以在網頁中直接編寫和運行代碼(可以寫一行代碼,執行一行,運行結果直接在代碼塊下顯示)。這個集文本、代碼、圖像、公式展現于一體的超級Python Web界面,可以幫助我們學習和調試代碼。而且已經集成了大量的庫,用起來非常方便。
三、 數據分析處理
1. 環境安裝
本例我們在Jupyter Notebook上實操。
Jupyter Notebook的安裝網上已有不少教程,不再贅述,附上安裝教程鏈接:
https://blog.csdn.net/yu1014745867/article/
details/84191485
2. 導入庫
在數據分析中,我們需要不同庫的幫助。選擇數據路徑,對數據預處理、清洗、分析,最后繪制圖表……本次Python實例中需要用到以下函數庫。
Numpy庫:用來實現科學計算,包括計算數組、一些隨機的函數……對文件中的數據進行處理。
Pandas庫:提供大量能使我們快速便捷地處理數據的函數與方法,比如導入文件、提取文件……
OS庫:提供了豐富的方法用來處理文件和目錄,包括一些修改文件的目錄……
由于我們已經安裝好了Jupyter Notebook,這些需要函數庫直接導入就可以使用了(如圖2)。在Jupyter Notebook分段輸入部分代碼就可以直接運行查看效果,特別適合我們學習。
3. 導入數據表
導入成功后便可以利用os函數定位到文件所指定的位置“F:\\數據分析表”,數據表格放在這個目錄下(如圖3)。
隨后我們用pandas將所需的數據從表格文件中調取出來,我們采用的數據是一張班級成員信息表(表格中個人隱私有打碼)(如圖4)。
由于數據量較大,我們只需要使用“data1[:5]”提取前面五行的內容便于觀察數據格式和內容。
4. 數據清洗
觀察數據后發現并沒有性別這一項內容,但是數據中存在著身份證號一項,可以利用數據清洗整理提取身份證倒數第二位數字的奇偶性來判斷性別。首先增加一個列表用來存放性別,其次定義male和female兩個變量分別代表男和女, 利用循環提取出所有的身份證號,然后再去尋找出倒數第二位的數字(注意Python是左開右閉的這個知識點)然后利用判斷語句判斷倒數第二個數和2的余數是否等于0,如果余數等于0代表女,否則代表男(如圖5)。
將男女的性別添加到列表中。之后再使用“data1[:5]”,我們可以看到已經多出了性別這一列(如圖6)。
數據清洗簡單說就是把數據中的污染“洗掉”,指發現并糾正數據文件中可識別的錯誤,包括檢查數據一致性、處理無效值和缺失值等。這是數據分析的難點,需要針對具體情況提出相應的解決方案。
5. 繪制圖表
根據已經處理過的數據就可以統計male和female的人數,根據這兩個數值就可以算出對應的比例。然后用餅圖的方式繪制出來(圖7)。
Python繪制圖形需要用到Python Matplotlib.pyplot庫。Matplotlib庫是一個面向對象的繪圖庫。繪圖界面由pyplot模塊提供。該模塊提供了許多繪圖函數,男女比例可以用餅圖來直觀顯示,餅圖利用plt.pie的方法,設置繪制所需要的參數,包括數據值、區間的內容、顯示字符的距離、區間顯示的顏色、百分比……都需要一一設置好。由于圖形的參數設置繁雜,這里就不一一詳述了,你可以根據參數表自行查看使用(圖8)。
掌握數據分析是一項非常實用的技能,要想學好還需要提前打好一定的數學和編程基礎,本實例只是拋磚引玉告訴你Python可以幫你快速處理數據,今后我們也會繼續介紹一些均值、方差的計算實例,希望能夠對您有所幫助。