關于Python數據分析,其實網上能夠找到的學習資源很多,主要分為兩類: 一類是提供各種資源的推薦 ,比如書單、教程、以及學習的先后順序; 另一類是提供具體的學習內容 ,知識點或實際案例。
但很多繁瑣而又雜亂的內容,除了給初學者增加理解和認識的噪音外,真正能夠起到明確的方向指引導的,確實不多。以至于很多人一開始沒有明確的方向就一頭扎進去, 學了很久卻不知道自己到底在學什么 ,或者自己學了很久不知道能夠做什么。
學習一門技術之前,你應該知道,你想要達成的目標是什么樣的。也就是說,你想通過這門技術來解決哪些問題。你就可以知道要達成這樣的目標,它的知識體系是怎么樣的。更重要一點的是,每個部分是用來解決哪些問題,只有明確的目標導向, 學習最有用的那部分知識,才能避免無效信息降低學習效率 。
通過這些常見的數據分析場景,你就可以獲得數據分析項目的基本流程。一般大致可以按 “數據獲取-數據存儲與提取-數據預處理-數據建模與分析-數據報告” 這樣的步驟來實施一個數據分析項目。
按照這個流程,每個部分需要掌握的細分知識點如下:
接下來我們分別從每一個部分展開,講講具體應該學什么、怎么學,以及各個部分主要的知識點進行結構化地展示,并有針對性地推薦學習資源。
如何獲取數據 ??
我們分析的數據一般有內部數據和外部數據兩種。
內部數據是在我們的業務運轉中產生,比如常見的用戶數據、產品數據、銷售數據、內容數據等等。內部的數據相對來說更加完善、規整,我們經常要做的工作匯報、產品優化等分析數據一般來源于此。可以找公司的技術人員索要,或者自己去數據庫提取。
當然,很多時候,我們需要利用外部的數據。比如進行市場調研,競品分析,或者輸出報告的時候,外部數據的分析是必不可少的,這也可以幫助我們得出更多的結論。
1. 公開數據源
UCI :加州大學歐文分校開放的經典數據集,真的很經典,被很多機器學習實驗室采用。
http://archive.ics.uci.edu/ml/datasets.html
國家數據 :數據來源于中國國家統計局,包含了我國經濟民生等多個方面的數據。
http://data.stats.gov.cn/index.htm
CEIC :超過128個國家的經濟數據,能夠精確查找GDP、CPI、進出口以及國際利率等深度數據。
https://www.ceicdata.com/zh-hans
中國統計信息網 :國家統計局的官方網站,匯集了海量的全國各級政府各年度的國民經濟和社會發展統計信息。
http://www.tjcn.org/
政務數據網站 :現在各個省都在很大程度上地開放政務數據,比如北京、上海、廣東、貴州等等,都有專門的數據開放網站,搜索比如“北京政務數據開放”。
2. 網絡爬蟲
基于互聯網爬取的數據,你可以對某個行業、某種人群進行分析。比如:
職位數據:拉勾、獵聘、51job、智聯
金融數據:IT桔子、雪球網
房產數據:鏈家、安居客、58同城
零售數據:淘寶、京東、亞馬遜
社交數據、微博、知乎、Twitter
影視數據:豆瓣、時光網、貓眼
……
在爬蟲之前你需要先了解一些 Python 的基礎知識:元素(列表、字典、元組等)、變量、循環、函數(菜鳥教程就很好)……
以及如何用成熟的 Python 庫(urllib、BeautifulSoup、requests、scrapy)實現網頁爬蟲。
掌握基礎的爬蟲之后,你還需要一些高級技巧。比如正則表達式、模擬用戶登錄、使用代理、設置爬取頻率、使用cookie等等,來應對不同網站的反爬蟲限制。爬蟲可以說是最為靈活、有效的數據獲取方式,但學習成本相對來說也要高一些。開始建議先利用公開數據進行分析,后續有更多的數據需求,再上手爬蟲。那個時候你已經掌握了Python基礎,爬蟲上手也會更輕松。
3. 其他數據獲取方式
如果你暫時不會爬蟲,但又有采集數據的需求,可以嘗試各種采集軟件,不需要編程知識也可以輕松爬取信息,比如火車頭、八爪魚等。很多數據競賽網站也會公開不錯的數據集,比如國外的Kaggle,國內的DataCastle、天池。這些數據都是真實的業務數據,且規模通常不小,可以經常去搜集和整理。
推薦數據匯總資源:
數據獲取方式匯總?? https://dwz.cn/Q44MsDkH
常用的數據獲取方式如下:
數據存儲與提取?
數據庫這個技能放在這里,是因為這是數據分析師的必備技能。大多數的企業,都會要求你有操作、管理數據庫的基本技能,進行數據的提取和基本分析。SQL作為最經典的關系型數據庫語言,為海量數據的存儲與管理提供可能。MongoDB則是新崛起的非關系型數據庫,掌握一種即可。
初學建議SQL。你需要掌握以下技能:
1.查詢/提取特定情況下的數據:企業數據庫里的數據一定是巨量而繁復的,你需要提取你想要的那一部分。
比如你可以根據你的需要提取2017年所有的銷售數據、提取今年銷量最大的50件商品的數據、提取上海、廣東地區用戶的消費數據……
2.數據庫的增、刪、改:這些是數據庫最基本的操作,但只要用簡單的命令就能夠實現。
3.數據的分組聚合、建立多個表之間的聯系:這個部分是數據庫的進階操作,多個表之間的關聯。
在你處理多維度、多個數據集的時候非常有用,這也讓你可以去處理更復雜的數據。
數據庫聽起來很可怕,但其實滿足數據分析的那部分技能不要太簡單。當然,還是建議你找一個數據集來實際操作一下,哪怕是最基礎的查詢、提取等操作。
推薦數據庫教程:
SQL-菜鳥教程? https://dwz.cn/a042MLdz
MongoDB-菜鳥教程 https://dwz.cn/sJFhRzj1
mySQL知識框架如下:
MongoDB知識框架如下:
?
數據清洗及預分析
很多時候我們拿到的數據是不干凈的,數據的重復、缺失、異常值等等。這時候就需要進行數據的清洗,把這些影響分析的數據處理好,才能獲得更加精確地分析結果。比如空氣質量的數據,其中有很多天的數據由于設備的原因是沒有監測到的,有一些數據是記錄重復的,還有一些數據是設備故障時監測無效的。比如用戶行為數據,有很多無效的操作對分析沒有意義,就需要進行刪除。
·選擇:數據訪問(標簽、特定值、布爾索引等)
·缺失值處理:對缺失數據行進行刪除或填充
·重復值處理:重復值的判斷與刪除
·空格和異常值處理:清楚不必要的空格和極端、異常數據
·相關操作:描述性統計、Apply、圖形繪制等
從數據處理開始,就需要介入編程知識了,但不必把Python的教程完全啃一遍,只需要掌握數據分析必備的那部分即可。
·基本的數據類型:比如字符串、列表、字典、元組,不同的數據類型如何創建、進行增、刪、改等操作,以及其中常用的函數及方法;
·Python函數:學習如何去創建自己的函數,實現更豐富的定制化程序,知道在使用中如何調用;
·控制語句:主要是條件語句和循環語句,利用不同的語句對流程進行控制,這是實現程序的自動化的基礎。
Python教程推薦:
Python3-菜鳥教程? https://dwz.cn/2nJnWkrp
Python練手項目合集? https://dwz.cn/cpM0jua5
Python基礎知識框架如下:
?
另外,Python中兩個非常重要的庫Numpy和Pandas也是需要掌握的,我們的很多數據處理及分析方法就源于其中。如果把Python比作是我們的房子,為我們提供基礎的框架,那么Numpy和Pandas就是房子里的家具和電器,為我們入住提供各種功能。當然,即便只是這兩個庫,官方文檔的內容也是非常多的,建議先掌握最常用的一些方法,這樣你可以解決大部分的實際問題,若后續遇到問題可以有針對性地去查詢文檔。
?
Numpy
·數組創建:從已有的數組創建、從數值范圍創建
·數組切片:通過切片進行選擇
·數組操作:元素增刪、數組維度修改、數組的分割及連接
·Numpy函數:字符串函數、數學函數、統計函數
推薦Numpy文檔:
Nump快速入門? http://h5ip.cn/ypHr
Numpy中文文檔? https://www.numpy.org.cn/
Numpy知識框架如下:
Pandas
·數據準備:數據讀取、創建數據表
·數據查看:查看數據基本信息、查找空值和唯一值
·數據清洗:缺失值處理、重復值處理、字符處理
·數據提取:按標簽值進行提取、按位置進行提取
·數據統計:采樣、匯總、基本的統計量計算
推薦Pandas文檔:
十分鐘入門Pandas? http://t.cn/EVTGis7
Pandas中文文檔? https://www.pypandas.cn/
Pandas知識框架如下:
?
數據清洗是數據預處理的重要組成部分,也是耗時間最長的一部分,因此根本多篇文章總結腦圖便于自己梳理清楚數據清洗的處理步驟,由此知道數據清洗該如何下手。
借鑒文章及數據如下:
專欄1:數據清洗https://zhuanlan.zhihu.com/dataclean :詳細介紹了數據清洗的主要方面
專欄2:python3 pandas庫https://zhuanlan.zhihu.com/c_129235459:數據清洗主要用pandas庫,其中有很多函數眾多,該專欄將主要函數介紹的相對清楚
書籍:《利用python進行數據分析》
?
數據分析及建模
如果你有一些了解的話,就知道目前市面上其實有很多 Python 數據分析的書籍,但每一本都很厚,學習阻力非常大。如果沒有整體的認識,往往不知道為什么要學習這些操作,這在數據分析中到底起什么樣的作用。為了得出普遍意義上的結論(或者從一般的數據分析項目來看),我們通常要進行三種類型的數據分析:描述性分析、探索性分析以及預測性分析。
描述性分析主要是有目的去描述數據,這就要借助統計學的知識,比如基本的統計量、總體樣本、各種分布等等。
通過這些信息,我們可以獲得對數據的初步感知,也能夠得到很多簡單觀察得不到的結論。
所以其實描述性的分析主要需要兩個部分的知識,其一是統計學的基礎,其二是實現描述性的工具,用上述 Numpy 和 Pandas 的知識即可實現。
探索性分析通常需要借助可視化的手段,利用圖形化的方式,更進一步地去觀看數據的分布規律,發現數據里的知識,得到更深入的結論。
所謂“探索”,事實上有很多結論我們是無法提前預知的,圖形則彌補了觀察數據和簡單統計的不足。
Python中的Seaborn和Matplotlib庫都提供了強大的可視化功能。
相對于Matplotlib,Seaborn更加簡單易于理解,畫基本的圖形也就是幾行代碼的事情,更推薦初學使用。
如后續需要定制化圖形,可進一步了解Matplotlib。
預測性的數據分析主要用于預測未來的數據,比如根據歷史銷售數據預測未來某段時間的銷售情況,比如通過用戶數據預測未來用戶的行為……
預測性分析稍難,越深入會涉及更多數據挖掘、機器學習的知識,所以可以只做做基本了解(或者等有需求的時候再學習)。
比如基本的回歸、分類算法,以及如何用Python的scikit-learn庫去實現,至于機器學習相關的算法選擇、模型調優則不必深入(除非你游刃有余)。
推薦數據分析資料:
書籍《深入淺出統計學》《商務與經濟統計學》
Matplotlib中文文檔 https://www.matplotlib.org.cn
十分鐘掌握Seaborn https://dwz.cn/4ePGzwAg
Scikit-learn中文文檔 http://sklearn.apachecn.org
數據分析建模知識框架如下:
撰寫數據報告
數據報告是整個數據分析項目的最終呈現,也是所有分析過程的總結,輸出結論和策略的部分。所以無論你的心路歷程多么精彩,數據報告才是最終決定你分析價值的產物。要寫好一個分析報告,首先要明確數據分析任務的目標,是要探索數據里的知識,還有要對產品進行優化,或者預測未來的數據。針對這些目標,那么需要對問題進行拆分,要達到目標,必須要輸出哪些有價值的信息。
對于最終的決策,哪些數據、信息是有用的,是否要進一步探索,哪些是無效的,是否直接丟棄。確定好輸出的大致內容、在數據分析過程中得到有用的結論之后,接下來應該思考,如何把這些分散的信息整合起來,為了達到最終的說服力,應該以怎樣的邏輯進行整合。
這是一個建立框架的過程,同時也反映這這個問題的拆解思路。在搭建好框架之后,就是把已有的結論填充進去,選擇合適的表達形式。選擇更合適的數據,哪些需要更加直觀的圖表,哪些結論需要進行詳細的解釋,并進行最終的美化設計,這樣一份完整的數據分析報告也就完成了。
在寫分析報告時,有一些一定要注意的地方:
1.一定要有框架,最簡單的就是以問題拆分的邏輯來進行搭建,在每個分支進行內容填充,分點說明;
2.數據的選擇不要過于片面,要多元化,進行對比分析,否則結論可能有失偏頗。
數據的價值決定了分析項目的上限,盡可能多收集有用的數據,進行多維度的分析;
3.結論一定要有客觀的數據論證,或者嚴密的邏輯推導,否則沒有說服力,特別容易陷入自嗨;
4.圖表比文字更加直觀,而且可讀性更高,應該多利用圖形化的表達方式;
5.分析報告不只是要說明問題,更重要的是基于問題提出建議、解決方案、預測趨勢;
6.多看行業報告,多練習,Business Sense 在后期比技巧更重要。
推薦數據報告相關網站:
艾瑞網-數據報告? http://report.iresearch.cn/
友盟+-數據報告? http://t.cn/EVT6Z6z
世界經濟論壇報告? http://t.cn/RVncVVv
普華永道行業報告? http://t.cn/RseRaoE
撰寫數據報告的框架如下:
以上就是Python數據分析完整的學習路徑,只需要一些業務的常識,像均值、極值、排序、相關性、中位數……這些東西我們信手捏來的東西往往占據數據分析的絕大多數內容,你所學的只不過是實現這些的工具而已。就像一個100行的數據,給任何一個智力正常的人,不用任何工具和編程技術,他也能獲得一份基本的結論,而工具則是讓我們在效率、可擴展性和實現維度方面得到更好的提升.
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
