這段時間透過學習相關的知識,最大的變化就是看待事物更加喜歡去了解事物後面的本質,碰到問題後解決問題思路也發生了改變。

舉個具體的例子,我在學習資料分析,將來會考慮從事這方面的工作,需要掌握的相關專業知識這個問題暫且按下不表,那哪些具體的問題是我需要了解的呢,以下簡單羅列:

1、瞭解

資料分析師

這個崗位在各個地區的需求情況?

2、資料分析師的薪資待遇如何?

3、根據日後工作年限的增加,薪資待遇的增長情況會如何呢?

透過以上問題的簡單羅列,我已經完成了“我該怎樣進行資料分析?”的第一步:

提出問題

。那要進行資料分析,應該怎麼做?

資料分析的流程:

第一步:

提出問題

我們應該明白,一切進行資料分析的行為(目的)都是為了解決我們生活和工作中遇到的問題,明確的問題為我們將要進行的資料分析提供了目標和方向。

第二步:

理解資料

,可分為以下兩步驟:

1、採集資料:根據研究的問題,採集相關的資料;

2、檢視採集到的資料集資訊,其中包括描述統計資訊,從整體上理解資料。

第三步:

資料清理(資料預處理)

很多資料在被採集到的時候不符合我們資料分析的標準,裡面有很多“髒”資料或重複資料,這樣的資料我們就需要對它進行“整容”,把它處理成我們需要的樣子。

第四步:

構建模型

對清洗後的資料進行分析,一般簡單的要求是得出一些業務指標,複雜的可能需要運用

機器學習演算法

來訓練這個模型對資料進行分析。

第五步:

資料視覺化

在與他人交流我們得出的研究成果的時候,最好的方式就是運用圖表展現。把得出的分析結果運用圖表展示給你的上級(老闆)或客戶。

當我們瞭解了資料分析的流程以後,我們就可以進行資料分析的操作了。回到上面提出的三個問題,有了明確的任務目標以後,那就是要進行第二步中的採集資料了,在這裡我使用 Gooseeker 這一款免費的資料採集工具(爬蟲工具)去前程無憂(51job)收集關鍵詞“資料分析”的相關職位資訊,在嘗試的過程中碰到了很多問題,最大的感觸就是任何一個小問題都可能導致你偏離所達成的目標很大一截,要充分學會使用搜索工具找尋相應解決方案,很多情況下都需要舉一反三的去理解。

接下來我們要進行第三步,資料清理。開啟我們收集的相關資料(考慮到爬蟲工作的工作效能問題,我只爬取了杭州市的資料作為分析物件),首先我們根據最初提出的三個問題來簡單判斷哪些內容是我們需要的必要欄位,哪些是不需要的,將不需要的欄位所屬列進行隱藏處理,養成好的習慣,不要輕易刪除資料,這樣在我們有可能出錯的時候可以透過保留的資料找回。

學會資料分析思維,學會透過事物看本質

原始資料展示

在檢視資料的時候發現從“職位名稱”往後一直到“薪資待遇”其中“學歷”、“招聘人數”、“釋出時間”這三項顯示的都是“工作年限”的內容,說明我們在資料抓取的時候設定某個引數時出現了錯誤,依據第一步提出的三個問題做判斷,得出結論出錯的三項內容為非必要欄位,將其做“隱藏”處理。注:如出錯的是必要欄位,例如:“薪資待遇”,那就要重新收集資料處理。

學會資料分析思維,學會透過事物看本質

資料中出錯的內容

依據 Gooseeker 爬取規則的原理(二級頁面依據上一級列表頁的連結爬取),在這裡我們選擇用二級招聘資訊內容展示頁連結為依據做去重操作,提示“未發現重複值”,說明我們採集的資料每一條都是唯一(具體步驟:選擇選單欄中“資料”-“刪除重複值”-取消全選-選擇“內容頁連結”項)。

學會資料分析思維,學會透過事物看本質

資料去重

學會資料分析思維,學會透過事物看本質

去重結果

由於我選擇的資料是整個杭州市的“資料分析師”的招聘資訊,用於判斷所屬“工作地點”將以“區”為依據展開,在檢視資料的時候發現部分資料是以為城市為單位,這裡需要對缺失值根據具體情況做出相應處理。

學會資料分析思維,學會透過事物看本質

資料中的缺失值

首先將“工作地點”整列複製到最後一列中進行“分列”操作(“分列”操作會把分出的資料列直接覆蓋到後一列,建議複製到最後列操作最為可靠)

學會資料分析思維,學會透過事物看本質

資料分列操作

透過“刷選”功能去除非杭州城市。注:由於後續其他地方依然會使用到“刷選”功能,所有需要將怎個工作表複製到新工作表中用於儲存刷選後的結果。

學會資料分析思維,學會透過事物看本質

刷選去除非不要資料

當我執行復制整個表格到新的工作表中的時候,發現 Excel 直接卡死,並提示記憶體不足,多次嘗試後我發現原因是 Excel 工作表中有大量的隱藏列和行,或是使用“篩選”使大量的欄位被隱藏後,在使用“全選”欄位的時候再把大量的空白單元格也複製了(全選的時候連續按兩次 ctrl+a),這樣的情況就會出現上述問題,解決方案是隻選擇有欄位的單元格即可,如下圖:

學會資料分析思維,學會透過事物看本質

如何選擇“全選”複製

當我執行完上述操作後,檢視到“詳細地區”中有多處缺失值,可做如下處理:

1、首先透過透過“篩選”功能判定有多少缺失值,如果數量少,且容易透過人工甄別判斷,可根據具體情況補全對應缺失值;

2、如果透過“篩選”後發現缺失值是錯誤收錄,例如:所屬地區不屬於杭州,被HR錯誤的標記為杭州,那就做刪除處理;

3、如果存在大量的缺失值,且欄位屬於未出錯欄位,是由於書寫習慣或是對區域的理解不一樣,比如這份資料集中可能HR對於該職位在所屬公司工作性質定義為全市範圍內的,這樣的情況就會出現只有工作地點杭州,沒有具體所屬區域了,這樣的情況我們可以整體套用上級標註,全體標註為“杭州”。

透過篩選空白值可以得出判斷結果,詳細地區缺失值多達1145處,透過“定位”功能對所有缺失值進行標記,補全欄位為杭州,並透過組合快捷鍵 ctrl+enter 將所有缺失值全部補全,如下圖:

學會資料分析思維,學會透過事物看本質

定位補全缺失值

在資料採集中經常會出現多個欄位被自動放在了一個單元格中的情況,比如此資料集中的“

公司概況

”,其中包含了三部分內容:“公司性質”、“公司大小”“所屬行業”,在這裡我們就要將其進行“分列”、一致化處理。

學會資料分析思維,學會透過事物看本質

包含多個資訊的單元格

如上圖所示,在公司概況中公司性質、公司大小以及所屬行業之間是用“|”分割開的,我們可以用以作為“分列”的分割符號,但是首先需要透過整體替換功能去除空白值,如果是在“分列”之後再去除空白值會更加繁瑣,具體操作如下:

學會資料分析思維,學會透過事物看本質

清除空白值並分列

我們要了解杭州市資料分析師的薪資待遇情況就需要對薪資待遇進行拆分為“最低薪資”、“最高薪資”、“

平均薪資

”,需要運用到函式Left、Mid、Find、Len、Average;但是在此之前,我們透過“篩選”觀察可以看到個別“薪資待遇”HR填寫的方式不太一樣,例如:“XXX-XXX千/月”、“XXX-XXX萬/年”“XXX元/天”“XXX元/小時”以及空置未填寫,為了方便後續的一致化處理,首先做“分列”處理,把時間剝離。

學會資料分析思維,學會透過事物看本質

分列“薪資待遇”欄位

透過“篩選”並刪除掉未填寫“薪資待遇”的無效資料,這裡參考了 ExcelHome 論壇版主的方法:

學會資料分析思維,學會透過事物看本質

刪除無效欄位

把其他單位的薪資待遇透過轉換為“XXX-XXX千”格式,如下圖:

學會資料分析思維,學會透過事物看本質

透過公式轉換單位

透過“篩選”查詢發現有部分“薪資待遇”HR是按“年”書寫的,在此要透過公式換算為“月”,如下圖:

學會資料分析思維,學會透過事物看本質

透過公式轉換單位 2

透過上述幾步操作以後,我已經成功的把之前五花八門的薪資書寫方式轉換成了統一的格式,其中嘗試過很多種方法,最重要的是要知道怎麼去搜索自己想了解的一些函式,透過函式來達到轉換的目的,在這次轉換中我發現其實公式可以巢狀起來一起用,這樣就不需要分很多列去分佈書寫,上圖就是我透過組合巢狀公式直接換算的,可以看到公式非常長:

=CONCATENATE(ROUND((LEFT(J2,FIND(“-”,J2)-1)/12),2),“-”,ROUND((MID(J2,FIND(“-”,J2)+1,LEN(J2)-FIND(“-”,J2))/12),2))

以下是需要運用到函式Left、Mid、Right、Find、Len、Average、Round、Concatenate;

FIND:返回一個字串在另一個字串中出現的起始位置(區分大小寫)

語法:

FIND(find_text,within_text,start_num)

Find_text

: 要查詢的字串。用雙引號(表示空串)可匹配 Within_text 中的第一個字元,不能使用

萬用字元

▪Within_text: 要在其中進行搜尋的字串;

▪Start_num: 起始搜尋位置,

Within_text

中第一個字元的位置為 1。如果忽略,Start_num = 1。

LEFT:從一個文字字串的第一個字元開始返回指定個數的字元

語法:

LEFT(text,num_chars)

▪Text: 要提取字元的字串;

▪Num_chars: 要 LEFT 提取的字元數;如果忽略,為 1。

MID:從文字字串中指定的起始位置起返回指定長度的字元

語法:

MID(text,start_num,num_chars)

▪Text: 準備從中提取字串的文字字串;

▪Start_num: 準備提取的第一個字元的位置。Text 中第一個字元為 1;

▪Num_chars: 指定所要提取的字串長度。

RIGHT:從一個文字字串的最後一個字元開始返回指定個數的字元

語法

RIGHT(text,num_chars)

▪Text: 要提取字元的字串;

▪Num_chars: 要提取的字元數;如果忽略,為 1。

AVERAGE:返回其引數的

算術平均值

;引數可以是數值或包含數值的名稱、陣列或引用

語法:

AVERAGE(number1,number2,。。。)

▪Number1: 必須。要計算平均值的第一個數字、單元格引用或單元格區域;

▪Number2,。。。: 可選。要計算平均值的其他數字、單元格引用或單元格區域,最多可包含255個。

COUNT:計算區域中包含數字的單元格的個數

語法:

COUNT(value1,value2,。。。)

▪Value1: value1,value2,。。。是1到255個引數,可以包含或引用各種不同型別的資料,但只對數字型資料進行計算。

ROUND:按指定的位數對數值進行四捨五入

語法:

ROUND(number,num_digits)

▪Number1: 需要四捨五入的數值;

▪Num_digits: 執行四捨五入時採用的位數。如果此引數為負數,則圓整到小數點的左邊;如果此引數為零,則圓整到最接近的整數。

CONCATENATE:將多個

文字字串

合併成一個

語法:

CONCATENATE(text1,text2,。。。)

▪Text1: text1,test2,。。。 是1到255個要合併的文字字串。可以是字串、數字或對單個單元格的引用。

當完成了上去轉換單位和時間等不同條件後將“薪資待遇”拆分成“最低薪水”、“最高薪水”、“平均薪水”就顯得異常簡單了,只是要注意當在求得“最低、最高薪水”以後求“平均薪水”之時需要先將文字格式的數字(求得的最低最高薪水的數值)轉換為數值,可透過複製單元格並使用“分列”來轉換,不然會提示被“被零除”錯誤。

學會資料分析思維,學會透過事物看本質

求平均值

繼續一致化處理資料,我們將對職位名稱進行篩選,剔除那些與“資料分析師”無關的職位,FIND 函式如果查詢的欄位中不包含所查詢的文字所報錯,例如:=FIND({“資料分析”,“資料運營”,“分析師”},R5) ,返回的值是#VALUE!,使用 COUNT 函式後會變成含有被查詢文字返回數值1,不包含返回數值0,加上 IF 函式判斷,可以設定為返回“是”或“否”,例:=IF(COUNT(FIND({“資料分析”,“資料運營”,“分析師”},R2),R2),“是”,“否”)

學會資料分析思維,學會透過事物看本質

透過“篩選”工具把與資料分析無關的職業都隱藏以後,以“以最低薪水”為錨點排序收入情況,得到以下初步資料:最高平均薪水為41。665K/月,有效職位424個。

學會資料分析思維,學會透過事物看本質

複製整張表格到新的工作表中用於資料“描述統計”得到以下資料

學會資料分析思維,學會透過事物看本質

描述統計

整個杭州總體薪資情況(平均K/月,例:濱江1年工作經驗平均薪資7946。00元),注:表中直接顯示杭州的區域是HR在釋出招聘資訊時為明確標註工作地所在區域,特用“杭州”代替,以下圖看無經驗的顯示比1年工作經驗的平均薪資要高應該是大量HR沒有填寫對應屬性所致。

學會資料分析思維,學會透過事物看本質

各區域薪資情況

按百分比劃分

學會資料分析思維,學會透過事物看本質

百分比劃分

從上去分析結果可以得出:

1、濱江區、西湖區、

江乾區

釋出的招聘資訊相對比較多,大量的人才需求集中在3-7年工作經驗;

2、整個杭州市資料分析師的薪資平時在9。5K左右,中位數在7。5,相比網際網路其他崗位不算很出眾,但是發展潛力巨大,隨著工作年限的增加,薪資漲幅也還不錯;

3、將來從事資料分析相關工作可以考慮選擇其它城市發展,比如北上廣等超一線城市。