如何經過網絡數據的獲取,作出這些數據分析項目?

做者 | AlfredWu
來源 | Alfred數據室

最近有不少人在問,我是如何收集網絡的數據,如何進行數據處理、數據分析以及可視化呈現的算法

也有人問的更具體,關於Python數據分析的一些問題。到底應該怎麼學?如何快速入門,以及技術和業務之間的瓶頸如何突破?數據庫

由於深度的數據分析每每能夠看到事情的本質,而這又是一項在任何狀況下都超級加分的技能。總結了一些經驗,但願可以給還沒入門、或者入門以後就遇到瓶頸的新手一些建議。主要是關於如何系統地進行學習規劃,以及能夠避免的一些坑網頁爬蟲

有的同窗看到數據分析幾個字,就立刻開始Python函數+控制語句、R語言和ggplot庫……上來一頓騷操做,還沒入門就放棄了。小程序

這就是需求不明確致使的,固然學習方式也值得商榷,那到底數據分析須要什麼樣的技能呢? 這裏做爲例子,從招聘網站上找了幾個數據分析的崗位,咱們來看看具體的要求是怎樣的segmentfault



其實企業對數據分析師的基礎技能需求差異不大,可總結以下:api

  • 分析工具:通常要求SPSS/SAS/R/Python等分析工具至少會一種,會兩種以上加分,有的企業因內部需求,會指定的一種;
  • 數據庫:絕大會要求會SQL,部分要求SQL/NoSQL會一種,高級的分析師或者大型企業要求可以處理大數據,須要Hive(較少的須要Hadoop/Spark);
  • 統計學:若無相關專業背景,須要具有相應的統計學、機率論等基礎知識;
  • 數據挖掘:少部分要求會建模,瞭解基本的算法模型,可以作數據預測,即使不要求,算法也是加分項;
  • 結果輸出:Excel/PPT/Tableau。Excel和PPT要求的比較多,主要用做常規的數據呈現,與業務部門溝通等,Tableau通常做爲可視化或者分析工具的加分項或者要求之一;
  • 業務/思惟:對某個領域(如電商、金融等)相關業務的瞭解或具備產品、運營方向的分析經驗,有本身的數據分析的方法論和項目經驗,具有Data Sence。

看上去很簡單呀,對吧,但其實你把每一個技能拆分開來,都是一個不小的知識體系。若是咱們按照數據分析的流程來細分的話,每一個部分應該掌握的技能,大概是這樣的:網絡

那對於這個技能體系,應該如何進行技能的訓練呢?前後順序是什麼?哪些地方可能出現困難和瓶頸?函數

按數據分析的流程的順序按部就班,你會知道每一個部分須要完成的目標是什麼,須要學習哪些知識點,哪些知識是暫時沒必要要的。工具

接下來咱們分別從每個部分講講具體應該學什麼、怎麼學。oop

- ❶ -

數據獲取:爬蟲與公開數據

數據是產生價值的原材料,這也是數據分析項目的第一步。

一般我是經過爬蟲獲取相關數據的,一來數據有很高的時效性,二來數據的來源能夠獲得保證,畢竟網上的信息是異常豐富的。

這些分佈在網上零散的信息,經過爬取整合以後,就有比較高的分析價值。

好比你能夠經過爬蟲獲取招聘網站某一職位的招聘信息,爬取租房網站上某城市的租房信息,獲取知乎點贊排行、網易雲音樂評論排行列表。基於互聯網爬取的數據,你能夠對某個行業、某個事件、某類人羣進行分析。

在爬蟲以前須要先了解一些 Python 的基礎知識:數據類型(列表、字典、元組等)、變量、循環、函數………

以及,如何用 Python 庫(urllib、BeautifulSoup、requests等)實現網頁爬蟲。若是是初學,建議從requests+xpath開始。

固然,並非說公開數據就沒用了,在進行分析的時候,須要一些歷史數據進行對比,須要必定的行業標準進行參考的時候,公開數據的價值就體現出來了。

一些科研機構、企業、政府會開放一些數據,還有一些行業研究報告、他人的調查結果,均可以成爲你的數據來源。這些數據集一般比較完善、質量相對較高。

- ❷ -

數據存取:SQL語言

我並非每次都會用到數據庫,但不少時候這確實是作數據分析項目的必備技能,包括求職就業,也是必選項。

一般數據庫的使用可以讓數據存儲、管理更方便,同時也能提升數據提取和使用的效率,特別是在數據上了必定的量級以後,誰用誰知道。

大多數的企業,都會以SQL的形式來存儲數據,若是你是一個分析師,也至少要懂得SQL的操做,可以查詢、提取公司的數據。

SQL做爲最經典的數據庫工具,爲海量數據的存儲與管理提供可能,而且使數據的提取的效率大大提高。須要掌握如下技能:

  • 提取特定狀況下的數據:企業數據庫裏的數據必定是大而繁複的,你須要提取你須要的那一部分。好比你能夠根據你的須要提取2017年全部的銷售數據、提取今年銷量最大的50件商品的數據、提取上海、廣東地區用戶的消費數據……,SQL能夠經過簡單的命令幫你完成這些工做。
  • 數據庫的增、刪、查、改:這些是數據庫最基本的操做,但只要用簡單的命令就可以實現,因此你只須要記住命令就好。
  • 數據的分組聚合、如何創建多個表之間的聯繫:這個部分是SQL的進階操做,多個表之間的關聯,在你處理多維度、多個數據集的時候很是有用,這也讓你能夠去處理更復雜的數據。

SQL這部分比較簡單,主要是掌握一些基本的語句。固然,仍是建議找幾個數據集來實際操做一下,哪怕是最基礎的查詢、提取等。

- ❸ -

數據處理:Pandas/Numpy

爬回來的數據一般是不乾淨的,數據的重複、缺失、異常值等等,這時候就須要進行數據的清洗,把這些影響分析的數據處理好,才能得到更加精確地分析結果。

那麼咱們須要用相應的方法去處理,好比重複數據,是保留仍是刪除;好比殘缺數據,咱們是直接去掉這條數據,仍是用臨近的值去補全,這些都是須要考慮的問題。

對於數據預處理,學會 pandas/Numpy (Python包)的用法,應對通常的數據清洗就徹底沒問題了。須要掌握的知識點以下:

  • 選擇:數據訪問(標籤、特定值、布爾索引等)
  • 缺失值處理:對缺失數據行進行刪除或填充
  • 重複值處理:重複值的判斷與刪除
  • 異常值處理:清除沒必要要的空格和極端、異常數據
  • 相關操做:描述性統計、Apply、直方圖等
  • 合併:符合各類邏輯關係的合併操做
  • 分組:數據劃分、分別執行函數、數據重組
  • Reshaping:快速生成數據透視表

數據清洗一般被視爲髒活,但事實上這步很是重要,這直接決定了你的分析結論的準確性,決定你的項目是否能順利進行下去。

- ❹ -

數據分析與可視化

這個是從數據中發現信息、挖掘價值的過程,大多數的結論在這個步驟產生,主要作兩件事情。

一是對於既定的數據分析主題進行拆解,評估須要從哪些維度進行分析,提取哪些數據,這個步驟很大程度上來源於經驗或者對於具體事務的理解;

二是經過探索數據分佈的規律、數據的特徵,發現從表面看不到的信息,完成這個流程主要是經過數據自己進行探索。

前者對應的是描述性的數據分析,主要考慮數據的指標,看從不一樣的角度去描述數據可以得出哪些結論。

這個地方就須要對統計學的相關知識有必定的瞭解,好比:

  • 基本統計量:均值、中位數、衆數、百分位數、極值等
  • 其餘描述性統計量:偏度、方差、標準差、顯著性等
  • 其餘統計知識:整體和樣本、參數和統計量、ErrorBar
  • 機率分佈與假設檢驗:各類分佈、假設檢驗流程

後者則是探索型的數據分析,主要經過繪製數據的分佈圖形,來觀察數據的分佈規律,從而提取隱藏的某些信息。

這裏就須要對掌握可視化的技能,Python中的Matplotlib/Seaborn均可以完成可視化的工做。可視化既是探索性分析的工具,也能夠輸出最終結果呈現的圖形。

固然,還有一種是預測型的數據分析,須要構建模型來預測將來數據,我在推文中用的比較少,但在企業中應用很是多。

作數據分析的話,會用好比線性迴歸、邏輯迴歸、決策樹等這些基本的算法,用於解決基本的迴歸和分類問題,就OK了。

獲取更多專業課程或優質內容,可前往咱們的網站進行查閱:

https://www.cda.cn/?seo-segme...

也能夠搜索進入咱們的小程序,解鎖更多精彩內容和專業資訊:

相關文章
相關標籤/搜索