一個簡單的例子·如何使用excel進行數據分析?
來自專欄猴子聊數據分析6 人贊了文章
數據分析是的終極目的是解決現實問題,因此要從需求方的具體要求出發。
假設業務部門提供給我們一組關於數據分析師招聘崗位的相關信息,並且向我們提出如下問題:
1)在哪些城市找到數據分師工作的機會比較大?
2)數據分師的薪水如何?
3)根據工作經驗的不同,薪酬是怎樣變化的?在整個進行操作的過程中,我們應該時刻保有一種歷史,就是每一步操作都為之後的操作做準備。因此每一個動作都是有用的,這是一種結果導向型的思維。
我們首先應該複製一份原數據的,副本,然後在副本上進行操作,而將原數據保留。
然後應該根據這三個問題,找出其中的關鍵詞,也就是理清楚我們到底要什麼樣的結果。
1)在哪些城市找到數據分師工作的機會比較大? (城市)
2)數據分師的薪水如何? (薪水)
3)根據工作經驗的不同,薪酬是怎樣變化的?(工作經驗與薪水的關係)
(數據分析師——職位名稱)
括弧里標出來的就是我們從這幾個問題裡面提取的關鍵詞。這就是所謂的理解問題。由此推出我們需要重點關注的列包括:「城市」「薪水」「工作經驗」「職位名稱」
下一步我們就要根據實際需要進行數據清洗。一般來說,數據清洗包括以下的幾個步驟,但是我們在具體操作時,可以根據實際情況靈活運用。
為了可以清晰明了的看整個表格,我會給其中關鍵的幾項增加顏色背景,給表格加邊框。
仔細觀察後發現,與我們所要研究的問題有關的幾項,包括城市職位名稱,薪水,和工作年限要求。我們把這幾項高亮。
下一步祛除冗餘內容和刪除重複值,仔細觀察後發現公司名稱,公司ID和公司簡稱表達的是同一個意思,因此我們可以保留最為簡便的公司簡稱,而將其他兩項隱藏掉。
接著要刪除重複值,尋找所有列中沒有重複性的一列,以此為基準來刪除重複值,如在本例中,職位id是唯一,因此我們以它為基準刪除重複值。
然後重點觀察一下,我們高亮的那幾列。是否存在缺失值的問所謂一句話處理就是將某一列中所有題。存在的話把缺失值補全。這裡會用到excel的「開始」-「查找和選擇」-「定位條件」
PS:處理缺失值的四種方法:
a手動補全缺失值,適合確實數值比較少的情況
b刪除缺失數據
c用平均值代替缺失值
d用統計模型計算出的值代替缺失值
所謂一致化處理,就是將一列中,所有的單元格中的內容形式進行統一,在本例中,公司所屬領域一列中,而部分內容是只有一項,而另一些有兩項。這時可使用分列功能,將其處理為兩列,但在本例中,沒有這樣的需求,因此不做處理。
這裡我們重點要處理薪水那一列。原始數據只給出了每一個具體職位的薪資範疇,這樣的數據我們不能直接運用,因此我們要將它轉成,最高數據和最低數據,然後求得平均數據。最後運用平均數據這個數值來進行一些相關的,薪水方面的分析。這裡除了可以用分列功能來進行之外,還可以用函數來實現這一過程。
這裡主要會應用到以下幾個函數,主要是定位和截取字元串的函數。
Find(find text,within text,start_num)
LEN(text)
LEFT(text,Num_chars)
RIGHT(text,Num_chars)
MID(text,start_num,Num_char)
關於函數的運用,可具體參考excel相關文件。在此不做贅述。
已知薪水為xk-yk,薪水的起始單元格為P2
那麼最低薪水R列的演算法
思路:從左起截取k前的數字x ---> 使用LEFT函數 ---> 算出text,Num_chars
text=P2
Num_chars=k前面的字元數n=k前一個字元位於第n個數=FIND("k",P2)-1
從左起截取k前的數字x=LEFT(P2,所在位置)=LEFT(P2,FIND("k",P2)-1)
此時的得出的結果是數字表示的字元串
那麼最高薪水S列的演算法
思路:截取y ---> y在中間用MID函數 ---> 算出text,start_num,Num_chars
text=P2
start_num=分隔符後一位數字y的位置=分隔符的位置+1=FIND(「-」,P2)+1
Num_chars=字元串總長度 - y前面的字元數 - 第二個k的長度(就是1)
= LEN(P2)- FIND("-",P2)-1
從中間截取y =MID(P2,FIND("-",P2)+1,LEN(P2)-FIND("-",P2)-1)
檢查Q、R兩列中出現錯誤的原因,最終發現,是由於P行數字的問題,因此,將P行中大小寫統一,再將「……以上」的行中,最高薪水等同於最低薪水。最後求得平均值。
在職位名稱一列,仔細觀察後,會發現,某些不屬於數據分析的一些職位,也被歸入到制這個表格的數據中,因此要把這些數據剔除掉。
這裡使用幾個函數
IF(Logical_test,Value_if_true,Value_if_false)
COUNT(value1, [value2], ...)
Find(find text,within text,start_num)
在職位名稱右側插入列,並命名,在L2插入函數
IF(COUNT(FIND({"數據運營","數據分析","分析師"},L2)),"是","否")
最後再用「數據」-「篩選」功能,篩選出符合條件的數據
數據清洗完畢,將最後的數據複製粘貼到另一張表格中,開始利用數據數據透視表等工具建構模型。
1)在哪些城市找到數據分師工作的機會比較大?
2)數據分析師的薪水如何?
3)根據工作經驗的不同,薪酬是怎樣變化的?
關於問題一,我們以城市分組統計了各個城市數據分析人員的崗位需求,得到左上角的圖表,結論是數據分析崗位需求前五的城市分別是北京、上海、深圳、廣州和杭州。而在這五個城市中,需求最多的是具備1-3年工作經驗的崗位。
結論:我們選擇數據分析師相關崗位時,去北京、上海、深圳、廣州和杭州這五個城市會獲得相對較多的工作機會。這類型崗位是一個新興的職業,因此選擇現在加入這一行業是具有可行性。
關於問題二和三,數據分析師崗位的平均薪水約為12k,與其他行業相比較高。在行業內薪水最高的是具有5-10年經驗的人,約為21k。而薪水漲幅較大的倆個階段分別是工作1-3年和3-5年。並且隨著工作經驗的增長,工資也持續增長。
結論:這是一個可長期發展的職業,不存在吃「青春飯」的問題。
推薦閱讀:
※找工作難,面試失敗的核心原因已經找到
※Python 和 R語言那個好?數據分析師培訓
※SQL(mysql)思維導圖
※見證:一個月學會數據分析
※爬了智聯告訴你數據分析師這個行業到底怎麼樣