Python的眾多優點讓它成為最受歡迎的程序設計語言之一,國內外許多公司也已經在使用Python,例YouTube,Google,阿里云等等。
Python里的這些庫,
學會了你的工作至少翻一倍!
學Python的同學里估計有30%以上是為了做數據分析師或者數據挖掘,所以數據分析相關的庫,你一定要知道。
假如你掌握了Python的編程基礎后,就可以逐漸進入數據分析的奇妙世界。Python有滿足各種數據分析需求的強大而易用的標準庫,大部分時間,你主要是在和它們打交道。如何快速了解并應用它們?CDA數據分析師認為一個完整的數據分析項目大致可分為以下五個流程:
01
數據獲取
一般有數據分析師崗位需求的公司都會有自己的數據庫,數據分析師可以通過SQL查詢語句來獲取數據庫中想要數據。Python已經具有連接sql server、mysql、orcale等主流數據庫的接口包,比如pymssql、pymysql、cx_Oracle等。
而獲取外部數據主要有兩種獲取方式,一種是獲取國內一些網站上公開的數據資料,例如國家統計局;一種是通過編寫爬蟲代碼自動爬取數據。如果希望使用Python爬蟲來獲取數據,我們可以使用以下Python工具:
Requests - 主要用于爬取數據時發出請求操作。
BeautifulSoup -用于爬取數據時讀取XML和HTML類型的數據,解析為對象進而處理。
Selenium- Selenium可以模擬真實瀏覽器,自動化測試工具,支持多種瀏覽器,爬蟲中主要用來解決JavaScript渲染問題。
Scapy - 一個處理交互式數據的包,可以解碼大部分網絡協議的數據包。
02
數據存儲
對于數據量不大的項目,可以使用Excel來進行存儲和處理,但對于數據量過萬的項目,使用數據庫如Mysql來存儲與管理會更高效便捷,對于非結構化數據的存儲可以使用MongoDB。對于使用Python進行網絡抓取的數據,我們也可以使用pymysql包快速地將其存儲到Mysql中去。
Pymysql-PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫
03
數據預處理/數據清洗
數據科學家花了大量的時間清洗數據集,并將這些數據轉換為他們可以處理的格式。事實上,很多數據科學家聲稱開始獲取和清洗數據的工作量要占整個工作的80%。
大多數情況下,我們拿到手的數據是格式不一致,存在異常值、缺失值等問題的,而不同項目數據預處理步驟的方法也不一樣。如果選擇Python作為數據清洗的工具的話,我們可以使用Numpy和Pandas這兩個工具庫:
Numpy - 用于Python中的科學計算。它非常適用于與線性代數,傅里葉變換和隨機數相關的運算。它可以很好地處理多維數據,并兼容各種數據庫。
Pandas –Pandas是基于Numpy擴展而來的,可以提供一系列函數來處理數據結構和運算,如時間序列等。
04
建模與分析
這一階段首先要清楚數據的結構,結合項目需求來選取模型。
常見的數據挖掘模型有:
在這一階段,Python也具有很好的工具庫支持我們的建模工作:
Scikit-learn-適用Python實現的機器學習算法庫。scikit-learn可以實現數據預處理、分類、回歸、降維、模型選擇等常用的機器學習算法。
Tensorflow-適用于深度學習且數據處理需求不高的項目。這類項目往往數據量較大,且最終需要的精度更高。
05
可視化分析
數據分析最后一步是撰寫數據分析報告,這也是數據可視化的一個過程。在數據可視化方面,Python目前主流的可視化工具有:
Matplotlib-主要用于二維繪圖,它能讓使用者很輕松地將數據圖形化,并且提供多樣化的輸出格式。
Seaborn-是基于matplotlib產生的一個模塊,專攻于統計可視化,可以和Pandas進行無縫鏈接。
Pyecharts-是一個用于生成 Echarts 圖表的類庫。Echarts 是百度開源的一個數據可視化 JS 庫,可以快速繪制動態交互式可視化圖形。以下是使用Pyecharts繪制全國主要城市空氣質量地圖示例。
從上圖我們也可以得知,在整個數據分析流程,無論是數據提取、數據預處理、數據建模和分析,還是數據可視化,Python目前已經可以很好地支持我們的數據分析工作。
如何系統學習使用Python
進行數據分析和機器學習技巧?