1.為什麼選擇Python進行資料分析?
Python是一門動態的、物件導向的指令碼語言,同時也是一門簡約,通俗易懂的程式語言。Python入門簡單,程式碼可讀性強,一段好的Python程式碼,閱讀起來像是在讀一篇外語文章。Python這種特性稱為“虛擬碼”,它可以使你只關心完成什麼樣的工作任務,而不是糾結於Python的語法。
另外,Python是開源的,它擁有非常多優秀的庫,可以用於資料分析及其他領域。更重要的是,Python與最受歡迎的開源大資料平臺Hadoop具有很好的相容性。因此,學習Python對於有志於向大資料分析崗位發展的資料分析師來說,是一件非常節省學習成本的事。
Python的眾多優點讓它成為最受歡迎的程式設計語言之一,國內外許多公司也已經在使用Python,例YouTube,Google,阿里雲等等。
推薦下我自己建立的Python學習交流群960410445,這是Python學習交流的地方,不管你是小白還是大牛,小編都歡迎,不定期分享乾貨,包括我整理的一份適合零基礎學習Python的資料和入門教程。
2.程式設計基礎
要學習如何用Python進行資料分析, CDA資料分析師建議第一步是要了解一些Python的程式設計基礎,知道Python的資料結構,什麼是向量、列表、陣列、字典等等;瞭解Python的各種函式及模組。下圖整理了這一階段要掌握的知識點:
3.資料分析流程
Python是資料分析利器,掌握了Python的程式設計基礎後,就可以逐漸進入資料分析的奇妙世界。CDA資料分析師認為一個完整的資料分析專案大致可分為以下五個流程:
1)資料獲取
一般有資料分析師崗位需求的公司都會有自己的資料庫,資料分析師可以通過SQL查詢語句來獲取資料庫中想要資料。Python已經具有連線sql server、mysql、orcale等主流資料庫的介面包,比如pymssql、pymysql、cx_Oracle等。
而獲取外部資料主要有兩種獲取方式,一種是獲取國內一些網站上公開的資料資料,例如國家統計局;一種是通過編寫爬蟲程式碼自動爬取資料。如果希望使用Python爬蟲來獲取資料,我們可以使用以下Python工具:
Requests-主要用於爬取資料時發出請求操作。
BeautifulSoup-用於爬取資料時讀取XML和HTML型別的資料,解析為物件進而處理。
Scapy-一個處理互動式資料的包,可以解碼大部分網路協議的資料包
2)資料儲存
對於資料量不大的專案,可以使用excel來進行儲存和處理,但對於資料量過萬的專案,使用資料庫來儲存與管理會更高效便捷。
3)資料預處理
資料預處理也稱資料清洗。大多數情況下,我們拿到手的資料是格式不一致,存在異常值、缺失值等問題的,而不同專案資料預處理步驟的方法也不一樣。CDA資料分析師認為資料分析有80%的工作都在處理資料。如果選擇Python作為資料清洗的工具的話,我們可以使用Numpy和Pandas這兩個工具庫:
Numpy - 用於Python中的科學計算。它非常適用於與線性代數,傅立葉變換和隨機數相關的運算。它可以很好地處理多維資料,併相容各種資料庫。
Pandas –Pandas是基於Numpy擴充套件而來的,可以提供一系列函式來處理資料結構和運算,如時間序列等。
4)建模與分析
這一階段首先要清楚資料的結構,結合專案需求來選取模型。
常見的資料探勘模型有:
在這一階段,Python也具有很好的工具庫支援我們的建模工作:
scikit-learn-適用Python實現的機器學習演算法庫。scikit-learn可以實現資料預處理、分類、迴歸、降維、模型選擇等常用的機器學習演算法。
Tensorflow-適用於深度學習且資料處理需求不高的專案。這類專案往往資料量較大,且最終需要的精度更高。
5)視覺化分析
資料分析最後一步是撰寫資料分析報告,這也是資料視覺化的一個過程。在資料視覺化方面,Python目前主流的視覺化工具有:
Matplotlib-主要用於二維繪圖,它能讓使用者很輕鬆地將資料圖形化,並且提供多樣化的輸出格式。
Seaborn-是基於matplotlib產生的一個模組,專攻於統計視覺化,可以和Pandas進行無縫連結。
按照這個流程,每個階段所涉及的知識點可以細分如下:
從上圖我們也可以得知,在整個資料分析流程,無論是資料提取、資料預處理、資料建模和分析,還是資料視覺化,Python目前已經可以很好地支援我們的資料分析工作。