想做數據分析,分析用的數據get到了嗎?

想做數據分析,分析用的數據get到了嗎?

6 人贊了文章

想做數據分析嗎?

我不知道別人想不想,我是挺想的。

我從大學開始學了7年數學,一直以來我都沒有找到自己學習數學的意義,儘管別人說數學是基礎學科,什麼都可以做。可對我來說,畢業了找工作不知道自己適合做什麼;甚至對於別人問「你學數學都學些什麼,那些都有什麼用呢」都不知道如何回答。我一直在思考怎樣才能學有所用,用自己的知識來贏得優勢。

在經歷了單純的覺得數據分析好像跟我有點匹配,所以半踏入門檻後(工作換為統計相關),最近突然意識到數據分析的奇妙樂趣還有很多看得見的好處--

  • 職業發展:自從互聯網飛速發展以來,數據呈現爆炸式增長,利用數據來制定戰略指導業務做出決策已經逐漸成為公司們的標配。所以我覺得數據分析職位需求量大,天花板相對高,可以長期從事的行業。
  • 學以致用:讓我看到了數學在實際中的應用,當年學起來那麼枯燥的東西,那些從來沒有理解過全靠死記硬背的東西,原來是有這麼多用處的。雖然現在用的相對於學的還都是皮毛,不影響我有一種豁然開朗的感覺。
  • 思維提升:數據分析是一種用嚴謹的框架把事實清晰的展示出來的過程。這會鍛煉我們在解決問題時,更加系統,有邏輯和理性。
  • 應用場景:其實事物都是相通的,有了數據分析的思維,對於平時做決策做計劃都可以拿來用。另外還可以識別那些貌似有信服力的數據,防止被騙,反過來如果去說服別人的時候,基於數據表達更清晰有力。對於容易糾結又很喜歡所有事情都有規則的我來說,簡直像是找到了法寶。

最近都沉浸在新世界大門打開的喜悅之中, 不過也不能光顧著樂,既然這麼喜歡,那就應該讓自己在數據分析方面變得更加專業,實現精神物質共同提高。

怎麼能做到呢?

  • 我的想法: 先對數據分析對應的知識技能系統有一個全面的了解,然後查漏補缺。同時,為了提高效率,找一個認為可以指導自己系統學習的課程來跟隨學習,從初級到中級,搭建起自己的框架。
  • 我的行動: 找到了適合想法的課程,跟隨課程學習:每周一個模塊,至少7小時的學習,並且完成相應的模塊作業發給老師。
  • 我的OS: 不夠smart的目標都是耍流氓,不能讓自己立刻行動起來的目標也是一樣。

開始做數據分析了?

還沒有那麼快,我們得先get到分析用的數據。也許有人會說真正工作中,數據往往都是被準備好的,這一步真的有必要嗎?

我認為有。一方面我對數據分析應用的期待是全部生活而不是僅限於工作。另一方面,即使只在工作中用,作為一個數據分析者,數據是工作的源頭,自己對於怎麼得到源頭一點都不了解,相當於自己工作從頭就不可控,這個風險我不想要。最後,現在學習階段,有了自己抓取的數據,對於之後的可視化和分析都很有用。

所以我們的課程作業從抓取數據開始。具體的要求是:

1. 數據內容:自己感興趣行業數據或者自己工作相關,可以在之後用來進行分析和可視化

2. 數據量:>10000條

3. 數據獲取工具:易操作的第三方軟體(建議)比如 JSK

Step1 梳理任務內容

  1. 內容方面要自己感興趣或者工作相關,並且可以用於之後的分析。我自己工作相關的數據暫時想不到可以抓取的網站,而且我也沒有想好可以做什麼分析,所以pass了。考慮可獲得+感興趣+能分析,最後決定收集招聘網站關於數據分析職位的信息。
  2. 數據量要求過萬條。我想這個很合理,因為同一個問題數量級不同的時候呈現出的情況可能完全不同,實際應用的時候,數據分析的數據量不會太小,數據太少與要達到的學習目標不匹配。
  3. 數據收集工具:在此之前我在自學Python被它的爬蟲搞的暈頭轉向,基本已經放棄了爬數這塊。原來還有傻瓜式的工具,學起來。不過使用過覺得還是自己會寫程序更靠譜。

Step2 制定操作計劃

1. 確定抓取目標:

(1) 智聯招聘網站上數據分析職位在全國範圍內的招聘情況;

(2) 包括的信息層面有:公司(城市+規模+性質+行業)+職位要求(學歷+經驗+人數+職位類別)+薪資+福利;

(3) 數據量要大於1萬條.

2. 學習爬蟲工具的操作。

3. 整合數據存成excel文件。

4. 總結反思。

Step3 具體執行

  1. 確定爬蟲工具需要使用的功能,如下圖所示:列表和翻頁採集保證了數據條數,層級保證了數據內容的全面。

2. 爬取數據:我一共嘗試了三次來解決碰到的問題,主要是根據實際情況調整目標設定以及軟體操作問題:

問題1:智聯招聘每次搜索,結果列表最多只顯示90頁。也就是說,我希望做的後續分析中,一線城市本身職位需求分布情況(因為實際結果顯示不全)以及不同城市的職位數量對比都沒有辦法做。

問題分析:網站無法滿足我的任務目標。可以考慮的路徑:

1) 不換內容,更換招聘網站:我對其他招聘網站不熟,找尋時間不可控.

2) 更換項目內容: 按照可以搜集到1W條的網站更換內容,不想本末倒置;

3) 不換網站,調整任務目標:思考是否可以在現有網站條件下達成目標。

解決辦法:我選擇了調整任務,考慮將原有任務分解,減少每次搜索結果的數量使其控制在5400條之內;然後將分解採集的數據合併起來。

任務分解思路1:將全國改為北上廣深杭5大城市分別採集再合併;缺點是一線城市的職位搜索數量必然是超過5400條的,所以每個城市都採集不全。但因為已經周五了,馬上要到交作業的時候了,我還是嘗試了這種方式,數據內容大於10000條達標了,就是用於分析的意義不大。

任務分解思路2:最後還是不能接受為了完成作業而完成作業,所以重新梳理分析目標:看北京最近一周招聘數據學析相關崗位分布情況。為了能夠get全部數據,搜索條件為:北京+最近一周招聘+全職+職位類別。每個職位類別單獨出結果最後再合併。

最終選擇的內容抓取第一層信息(上圖)

最終選擇的內容抓取第2層信息(上圖)

問題2:採集列表數據不全,每一頁上顯示60條招聘信息,只抓取到了10幾條。

原因分析:設定路徑時選定的內容位置並不是固定的。這是網站的顯示方式設定為「詳細」時的情況。

解決辦法:沒有查到如何應對位置不固定的方法,所以從如何能讓信息位置固定,發現將網站顯示方式設定為「列表」即可,缺點是在這一層採集到的目標信息變少了,第二層的信息要相應增加。

問題原因:「經驗」變數並不是全部都有

問題3:要採集的職位類別有10個,需要建立10個規則嗎?

解決辦法:只需要在測試成功的規則中加入線索就好了,把10個職位類別第1頁的網址添加到線索欄即可(圖片是網路示例,不是我項目的)

問題4:分層採集時間很長,而且最後合併的時候發現採集內容不正確,串列了。

原因分析:涉及2方面,一個是在設定規則的時候沒有注意確認測試內容是否正確;另一方面,對於採集數據的時間預估不夠。

解決辦法:

採集內容部分:

1. 設定規則時仔細確認測試內容是否符合預期再保存;

2. 進行抓取時檢查,先將部分採集信息導入excel,確認信息符合預期。

採集速度部分:

利用「單搜」+「集搜」同時進行。還是會有點慢,沒有發現更好的方法。

問題5:從軟體系統導入excel後無法使用vlookup公式。

原因分析:系統導出的數據是設有格式的,不能直接運算。

解決辦法:將數據選擇性粘貼一下,按text格式。

問題6:將結果導入excel文件,因為抓數軟體的免費導數額度是10000條,不能滿足需求。

解決辦法:直接用excel導入

  • 將xlm文件導入excel:jingyan.baidu.com/artic

3. 整理結果

1) 第1層和第2層數據分別去重,並刪除不必要的變數;

2) 將2層數據通過第2層數據所在的網址用vlookup公式合併;

3)數據內容簡單處理並保存。

註:此處的數據截圖非最終版但是內容信息是與我最終目標一致的,最終版的第2層數據還在抓取中。

Step4 總結反思

在這個過程中我沒有把握好的地方:

  • 沒有做自己的學習計劃。因為課程要求很具體,建議每天學習1小時,每周完成一個小目標。自己覺得目標這麼清楚,課程貌似也不難按照它做就好了,結果發現時間不夠了,到了周五晚上我的數據還沒抓取完成。
  • 沒有想清楚再行動。在第1次抓取中碰到了很多問題,當時就有種時間緊張的感覺,於是急急忙忙的開始了第2次抓取,結果發現這次是無用功。最終又重新梳理,反覆確認後開始了第三次抓取。
  • 對抓取數據用時的重視程度不夠。我在第1次嘗試後就知道第2層數據抓取太慢,但是並沒有量化具體時間並找辦法,導致在確定最終方案後,發現第2層需要抓取48小時。

下一次自己的改進計劃:

  • 明確預期學習進度:在周一至周五完成全部內容的學習和操作,周六能直接開始寫總結。
  • 做自己的學習計劃:拿到課程後,全面了解內容,按照每部分預估時長,設定完成時間節點。
  • 加快理論學習速度,儘快進入實操階段,並按照實際使用時間調整制定的計劃。
  • 遇到問題找到解決方案後,不要立馬開始行動,而是全局梳理一遍流程,確認無誤後再進行下一步操作。慢即是快。
  • 知乎的總結現在Word中完全排版後再導入。

期待我的下一個小目標~~


推薦閱讀:

大數據時代,我們不能成為「透明人」
專訪搜達足球創始人韓慶山:數據分析為核心,探索體育大數據市場
簡單數據處理實踐(一)
關於數據產品的一些想法
雨沐田:如何做行業分析?

TAG:數據分析 | 大數據分析 |