想做數據分析,分析用的數據get到了嗎?
6 人贊了文章
想做數據分析嗎?
我不知道別人想不想,我是挺想的。
我從大學開始學了7年數學,一直以來我都沒有找到自己學習數學的意義,儘管別人說數學是基礎學科,什麼都可以做。可對我來說,畢業了找工作不知道自己適合做什麼;甚至對於別人問「你學數學都學些什麼,那些都有什麼用呢」都不知道如何回答。我一直在思考怎樣才能學有所用,用自己的知識來贏得優勢。
在經歷了單純的覺得數據分析好像跟我有點匹配,所以半踏入門檻後(工作換為統計相關),最近突然意識到數據分析的奇妙樂趣還有很多看得見的好處--
- 職業發展:自從互聯網飛速發展以來,數據呈現爆炸式增長,利用數據來制定戰略指導業務做出決策已經逐漸成為公司們的標配。所以我覺得數據分析職位需求量大,天花板相對高,可以長期從事的行業。
- 學以致用:讓我看到了數學在實際中的應用,當年學起來那麼枯燥的東西,那些從來沒有理解過全靠死記硬背的東西,原來是有這麼多用處的。雖然現在用的相對於學的還都是皮毛,不影響我有一種豁然開朗的感覺。
- 思維提升:數據分析是一種用嚴謹的框架把事實清晰的展示出來的過程。這會鍛煉我們在解決問題時,更加系統,有邏輯和理性。
- 應用場景:其實事物都是相通的,有了數據分析的思維,對於平時做決策做計劃都可以拿來用。另外還可以識別那些貌似有信服力的數據,防止被騙,反過來如果去說服別人的時候,基於數據表達更清晰有力。對於容易糾結又很喜歡所有事情都有規則的我來說,簡直像是找到了法寶。
最近都沉浸在新世界大門打開的喜悅之中, 不過也不能光顧著樂,既然這麼喜歡,那就應該讓自己在數據分析方面變得更加專業,實現精神物質共同提高。
怎麼能做到呢?
- 我的想法: 先對數據分析對應的知識技能系統有一個全面的了解,然後查漏補缺。同時,為了提高效率,找一個認為可以指導自己系統學習的課程來跟隨學習,從初級到中級,搭建起自己的框架。
- 我的行動: 找到了適合想法的課程,跟隨課程學習:每周一個模塊,至少7小時的學習,並且完成相應的模塊作業發給老師。
- 我的OS: 不夠smart的目標都是耍流氓,不能讓自己立刻行動起來的目標也是一樣。
開始做數據分析了?
還沒有那麼快,我們得先get到分析用的數據。也許有人會說真正工作中,數據往往都是被準備好的,這一步真的有必要嗎?
我認為有。一方面我對數據分析應用的期待是全部生活而不是僅限於工作。另一方面,即使只在工作中用,作為一個數據分析者,數據是工作的源頭,自己對於怎麼得到源頭一點都不了解,相當於自己工作從頭就不可控,這個風險我不想要。最後,現在學習階段,有了自己抓取的數據,對於之後的可視化和分析都很有用。
所以我們的課程作業從抓取數據開始。具體的要求是:
1. 數據內容:自己感興趣行業數據或者自己工作相關,可以在之後用來進行分析和可視化
2. 數據量:>10000條3. 數據獲取工具:易操作的第三方軟體(建議)比如 JSK
Step1 梳理任務內容
- 內容方面要自己感興趣或者工作相關,並且可以用於之後的分析。我自己工作相關的數據暫時想不到可以抓取的網站,而且我也沒有想好可以做什麼分析,所以pass了。考慮可獲得+感興趣+能分析,最後決定收集招聘網站關於數據分析職位的信息。
- 數據量要求過萬條。我想這個很合理,因為同一個問題數量級不同的時候呈現出的情況可能完全不同,實際應用的時候,數據分析的數據量不會太小,數據太少與要達到的學習目標不匹配。
- 數據收集工具:在此之前我在自學Python被它的爬蟲搞的暈頭轉向,基本已經放棄了爬數這塊。原來還有傻瓜式的工具,學起來。不過使用過覺得還是自己會寫程序更靠譜。
Step2 制定操作計劃
1. 確定抓取目標:
(1) 智聯招聘網站上數據分析職位在全國範圍內的招聘情況; (2) 包括的信息層面有:公司(城市+規模+性質+行業)+職位要求(學歷+經驗+人數+職位類別)+薪資+福利; (3) 數據量要大於1萬條.2. 學習爬蟲工具的操作。3. 整合數據存成excel文件。
4. 總結反思。
Step3 具體執行
- 確定爬蟲工具需要使用的功能,如下圖所示:列表和翻頁採集保證了數據條數,層級保證了數據內容的全面。
2. 爬取數據:我一共嘗試了三次來解決碰到的問題,主要是根據實際情況調整目標設定以及軟體操作問題:
問題1:智聯招聘每次搜索,結果列表最多只顯示90頁。也就是說,我希望做的後續分析中,一線城市本身職位需求分布情況(因為實際結果顯示不全)以及不同城市的職位數量對比都沒有辦法做。
問題分析:網站無法滿足我的任務目標。可以考慮的路徑: 1) 不換內容,更換招聘網站:我對其他招聘網站不熟,找尋時間不可控. 2) 更換項目內容: 按照可以搜集到1W條的網站更換內容,不想本末倒置; 3) 不換網站,調整任務目標:思考是否可以在現有網站條件下達成目標。解決辦法:我選擇了調整任務,考慮將原有任務分解,減少每次搜索結果的數量使其控制在5400條之內;然後將分解採集的數據合併起來。任務分解思路1:將全國改為北上廣深杭5大城市分別採集再合併;缺點是一線城市的職位搜索數量必然是超過5400條的,所以每個城市都採集不全。但因為已經周五了,馬上要到交作業的時候了,我還是嘗試了這種方式,數據內容大於10000條達標了,就是用於分析的意義不大。
任務分解思路2:最後還是不能接受為了完成作業而完成作業,所以重新梳理分析目標:看北京最近一周招聘數據學析相關崗位分布情況。為了能夠get全部數據,搜索條件為:北京+最近一周招聘+全職+職位類別。每個職位類別單獨出結果最後再合併。
問題2:採集列表數據不全,每一頁上顯示60條招聘信息,只抓取到了10幾條。
原因分析:設定路徑時選定的內容位置並不是固定的。這是網站的顯示方式設定為「詳細」時的情況。解決辦法:沒有查到如何應對位置不固定的方法,所以從如何能讓信息位置固定,發現將網站顯示方式設定為「列表」即可,缺點是在這一層採集到的目標信息變少了,第二層的信息要相應增加。
問題3:要採集的職位類別有10個,需要建立10個規則嗎?
解決辦法:只需要在測試成功的規則中加入線索就好了,把10個職位類別第1頁的網址添加到線索欄即可。(圖片是網路示例,不是我項目的)
問題4:分層採集時間很長,而且最後合併的時候發現採集內容不正確,串列了。
原因分析:涉及2方面,一個是在設定規則的時候沒有注意確認測試內容是否正確;另一方面,對於採集數據的時間預估不夠。解決辦法:
採集內容部分: 1. 設定規則時仔細確認測試內容是否符合預期再保存; 2. 進行抓取時檢查,先將部分採集信息導入excel,確認信息符合預期。 採集速度部分: 利用「單搜」+「集搜」同時進行。還是會有點慢,沒有發現更好的方法。問題5:從軟體系統導入excel後無法使用vlookup公式。原因分析:系統導出的數據是設有格式的,不能直接運算。解決辦法:將數據選擇性粘貼一下,按text格式。問題6:將結果導入excel文件,因為抓數軟體的免費導數額度是10000條,不能滿足需求。解決辦法:直接用excel導入
- 將xlm文件導入excel:https://jingyan.baidu.com/article/7082dc1c49b90fe40a89bd1b.html
3. 整理結果
1) 第1層和第2層數據分別去重,並刪除不必要的變數;
2) 將2層數據通過第2層數據所在的網址用vlookup公式合併;3)數據內容簡單處理並保存。
Step4 總結反思
在這個過程中我沒有把握好的地方:
- 沒有做自己的學習計劃。因為課程要求很具體,建議每天學習1小時,每周完成一個小目標。自己覺得目標這麼清楚,課程貌似也不難按照它做就好了,結果發現時間不夠了,到了周五晚上我的數據還沒抓取完成。
- 沒有想清楚再行動。在第1次抓取中碰到了很多問題,當時就有種時間緊張的感覺,於是急急忙忙的開始了第2次抓取,結果發現這次是無用功。最終又重新梳理,反覆確認後開始了第三次抓取。
- 對抓取數據用時的重視程度不夠。我在第1次嘗試後就知道第2層數據抓取太慢,但是並沒有量化具體時間並找辦法,導致在確定最終方案後,發現第2層需要抓取48小時。
下一次自己的改進計劃:
- 明確預期學習進度:在周一至周五完成全部內容的學習和操作,周六能直接開始寫總結。
- 做自己的學習計劃:拿到課程後,全面了解內容,按照每部分預估時長,設定完成時間節點。
- 加快理論學習速度,儘快進入實操階段,並按照實際使用時間調整制定的計劃。
- 遇到問題找到解決方案後,不要立馬開始行動,而是全局梳理一遍流程,確認無誤後再進行下一步操作。慢即是快。
- 知乎的總結現在Word中完全排版後再導入。
期待我的下一個小目標~~
推薦閱讀:
※大數據時代,我們不能成為「透明人」
※專訪搜達足球創始人韓慶山:數據分析為核心,探索體育大數據市場
※簡單數據處理實踐(一)
※關於數據產品的一些想法
※雨沐田:如何做行業分析?