永生 神是一切喜樂的源頭。


我也不知道,因為數據分析我不僅學不完,學不會,還看不懂,甚至想睡覺,好痛苦嚶嚶

一、前情回顧

初級數據分析:八步就能學會!

第一步:制定你的職業規劃

第二步:學習基礎理論,描述統計分析

第三步:實際應用,實踐項目—母嬰數據描述統計分析

二、第三步:實踐項目—母嬰數據描述統計分析

正文:假如我們是某母嬰公司的數據分析師,公司給到我們 「2012-2015年天貓淘寶購買嬰兒商品的用戶的數據集」,我們可以根據這些數據做什麼呢?

描述統計分析學的定義給了我們一些思路:

實際上,數據分析的主要步驟有:

(一)明確問題(二)理解數據

(三)數據清洗

(四)數據分析或構建模型(五)數據可視化

(一)明確問題

思考一下,如果我們是公司員工,我們希望通過這些數據解決什麼問題?例如:

哪種商品銷量最好?(一級、二級)

哪一年的銷量最高?

每一年哪個季度銷量最高?

男女性別嬰兒購買量差異?

男女性別嬰兒購買商品喜好?

不同嬰兒年齡購買商品差異?

不同年齡段嬰兒購買喜好?

  • 不同性別的寶寶用戶購買偏好?欄位選擇:user_id,gender,buy_mount,cat_id
  • 不同年齡的寶寶用戶購買偏好?欄位選擇:user_id,age,buy_mount,cat_id
  • 哪一類商品最受歡迎?欄位選擇:cat_id,buy_mount
  • 同類商品,不同子分類那一類更受歡迎?欄位選擇:
  • 什麼時間段用戶更喜歡下單?欄位選擇:day,buy_mount
  • 哪類商品分別在什麼時間下單最多?欄位選擇:day,buy_mount,cat_id

(二)理解數據

數據集來源:阿里巴巴天池 https://tianchi.aliyun.com/dataset/dataDetail?dataId=45

【表一】為購買商品表,具有如下欄位

user_id:用戶ID,不同淘寶用戶用戶的註冊ID,是用戶的唯一識別碼,通過此ID可瞭解用戶的購買記錄。通過用戶ID來分析PV,UV等信息。

auction_id:物料編碼,用於識別用戶購買的物品;

cat_id:商品種類ID,商品一級分類,商品屬於的類別;

cat1:商品種類ID,商品二級分類,表示商品種類下的細分的小類別;

property:商品屬性,表示商品的基本參數值,如大小、材質、顏色等;

buy_mount:購買數量,可用於分析商品的銷售情況及用戶的偏好的商品;

day:購買時間,可用於分析每個季度、每月、每週等的商品銷售量及與用戶ID一起構建RFM模型。針對錶一查看商品屬性數據不明確,所以這裡暫不分析。

【表二】為嬰兒信息表,具有如下欄位:

user_id:用戶ID,淘寶用戶唯一識別ID,可與一匹配構建新的表,進行進一步的分析;

birthday:出生日期,可轉化為嬰兒年齡,以分析在各年齡段購買的商品;

gender:性別(0 男性;1 女性),可用於分析不同性別寶寶家長的購買行為,如某一類商品下單數據中是男性寶寶需求多還是女性寶寶需求多。

(三)數據清洗

注意:養成好習慣,在清洗數據前先複製一份原始數據,避免數據丟失

1、數據清洗目的

通常會有重複數據,缺失內容,格式不一致,不正確的問題。因此我們要清洗數據,從而得到我們最終想要的數據集。

2、數據清洗分為以下7個步驟

示例操作:

Step1 選擇子集。

可以把一些沒有太多意義的列隱藏,注意,是隱藏,而不是刪除。這樣可以讓我們清晰簡潔地處理我們想要專註的數據同時,又保證了數據的完整性。

Step2 列名重命名。

有一些很晦澀的列名,我們需要重命名它們,從而讓表格看起來更通俗易懂。

Step3 刪除重複值。

職位ID是主鍵,應當具有唯一性,如有重複的職位ID的話應當是重複數據,需要刪除。因此我們可以通過點擊「數據」——「刪除重複項」——「取消全選」——只選擇「職位ID」——「確定」——「保存」來刪除重複數據。

Step4 缺失值處理。

通過step3我們已經知道有5032個職位ID,得出應當有5032條數據,但是如果我們點擊「城市」列,會發現只有5030條數據,因此「城市」這列缺失量為2。通過點擊「開始」——「查找和選擇」——「定位條件」——「空值」——「確定」——在空白的單元格內輸入「上海」,輸入完同時按住鍵盤上的Ctrl+Enter,其他空白單元格都將變成「上海」。缺失值處理方法:①人工補全數據(缺失數少);②刪除缺失數值;③用平均值代替缺失數據;④用統計模型計算出來這個值代替缺失值。

Step5 一致化處理。

在數據表裡面,我們發現公司所屬領域這一列,有一些數據和其他數據並不一致,會對以後的數據處理和分析產生影響。因此需要通過分列來讓數據一致化。點擊列好選擇整列,複製粘貼到最右邊的列,以免原本列右邊的數據被覆蓋。選擇粘貼的數據列,點擊「數據」——「分列」——選擇」分隔符號隔開「——選擇」其他「,然後輸入」,「,——」下一步「——」完成「。這樣數據一致化處理就完成了。

Step6 數據排序。

這一步非常複雜,需要先對原始數據進行處理才能進行排序。我們會學習到函數的概念。在數據裡面我們最關心的一列為薪水。但是我們需要清洗數據來得到想要的格式和結果。

目前的呈現模式為7k-9k,但是我們希望把它轉化成三個列,最高薪水,即數字9,最低薪水,即數字7,平均薪水,即數字8。

這需要我們先使用查找和截取字元串的函數。查找函數的公式:=FIND(」要查找的字元串」,字元串所在的單元格位置) 這樣可以找到k。再用=LEFT(字元串所在的單元格位置,從左開始到XX位置進行截取),即=LEFT(A2,FIND("k",A2)-1)可以得到最低薪水,7。

得到最低薪水的數值後,我們開始學習如何得到最高薪水的數值。需要找到-的分隔符,因此需要用到MID(字元串所在單元格,起始位置,截取長度)。如果單元格的內容是7k-9k,那麼我們應當得出MID(A2,FIND("-",A2)+1,LEN(A2)-FIND("-",A2)-1),從而可以得到最高薪水的數值9。

當我們把滑鼠放在單元格A2右下角,當滑鼠變成十字架形狀,雙擊十字架,將函數應用到這一整列數據上。這時我們需要驗證是否整列數據都被成功處理成我們想要的結果。

點擊「數據」——「篩選」——選擇最低薪水的列——取消全選——選擇「#VALUE!",從而處理錯誤值。比如用替換功能把K換成k;如果單元格的內容是15k以上,即手動把最低薪水和最高薪水都輸入15。

得到了最低薪水和最高薪水這兩列,我們此時可以來求平均薪水。但是此時最低薪水和最高薪水的內容是字元串形式,我們需要轉化成數字形式。通過複製這兩列的數字,選擇性粘貼,選擇數值,完成。這時會出現綠色三角形的錯誤提示。通過分列,選擇分隔符號,然後不勾選任何分隔符號,而是勾選連續分隔符號視為單個處理,文本識別符號為」。可以得到數字類型的薪水值。需要強調的是,如果是字元串形式,格式是左對齊;如果是數字形式,格式是右對齊。可以進行有效區分。

而平均薪水可以用=AVERAGE(最低薪水第一個單元格,最高薪水第一個單元格)輕鬆求出來。

最後我們使用「開始」——「排序和篩選」——「降序」,可以將平均薪水由高到低排序。

Step7 異常值處理。

下面我們來到最後一步,異常值處理。在這裡我們需要使用到數據透視表的思維和原理。即數據分組,應用函數,和組合結果。點擊「開始」——「數據透視表」——「選擇新工作表」。由此我們來到一個數據透視表。將職位名稱拖到行,和總值。點擊行標籤,選擇其他排序選項,通過按照計數項為職位名稱的降序排列,由此發現大數據開發工程師,和需求分析師並非我們需要的。因此我們可以使用IF,COUNT和FIND函數。 IF(COUNT(FIND({"數據運營","數據分析","分析師"},L2)),"是","否")函數可以將職位劃分為數據分析相關職業,和非數據分析相關職業兩大類。此時我們將非數據分析相關職業的數據刪除,即得出最終數據。

案例實際操作:

1、選擇子集

通過隱藏功能實現選擇子集,根據提出的問題,選擇用戶ID,商品編號,商品一級分類,商品二級分類,購買數量,購買時間,等欄位

也可以練習操作:將商品屬性欄位隱藏(而不是刪除,保護數據)

2、列名重命名

一般將英文列名改為中文列名,便於理解.但是本次數據集列名已經是中文了,不需要修改.

也可以練習一下函數:可以將嬰兒信息表中性別欄位的數字通過IF函數修改為中文.

示例

3、刪除重複值

點擊數據-&>刪除重複項-&>取消全選-&>選擇想要去重的變數-&>確定

本次數據是用戶購買商品數據集,在同一時間的同一用戶購買的同一商品不應該有重複數據,所以選擇用戶ID、商品編號、購買時間3個變數進行去重操作,結果顯示沒有重複數據.

4、缺失值處理

查案每一列的數據量-&>單擊列-&>查看右下角顯示的數據量,發現商品屬性列存在缺失數據(但是分析數據不需要這列數據,可以不處理)

也可以通過查找和選擇中定位條件,選擇空值條件,查找缺失值。缺失值處理方法:①人工補全數據(缺失數少);②刪除缺失數值;③用平均值代替缺失數據;④用統計模型計算出來這個值代替缺失值。

5.一致化處理

將購買時間欄位的時間戳轉化為日期格式

①選擇購買時間欄位-&>點擊分列功能-&>選擇日期YMD(不可忽略第①步直接第②步,格式會混亂,如圖)

②之後再選擇日期列-&>設置單元格格式-&>自定義-&>選擇合適的日期格式,這裡選擇yyyy/m/d

同樣的方法對嬰兒信息表中的出生日期列進行修改

6、數據排序數據排序是用於發現更多有價值的信息

選擇數據-&>排序-&>降序排列

發現用戶ID為2288344467的用戶在日期2014/11/13購買10000份商品一級分類為50014815,二級分類為50018831的商品,是本次數據及日消費的最大值.

7、異常值處理

通過數據篩選功能,可以查看到每列數據的信息,通過排查,未發現異常值.

經過以上數據清洗工作,我們得到了清洗後的數據集,之後在清洗後的數據集中進行數據分析.

(四)數據分析或構建模型(數據透視表)

【表1】

1、不同商品種類的購買數量

由數據透視表可以看出,商品一級分類為50008168的商品,購買數量最多,購買數量為624802050992

2、那麼在這一類別商品中,那個二級類別商品最受歡迎呢?

可以看到在商品一級分類為50008168的商品中,二級類別為50013636的商品最受歡迎,它的銷售量為103316875088。

3、不同時間的購買量

3.1按年份匯總數據

右擊日期單元格-&>創建組-&>選擇年份

發現2014年商品銷量最多

3.2按年份,季度匯總數據

右擊日期單元格-&>創建組-&>選擇年份,季度

發現2012-2015各年都是第四季度銷量最多

3.3按星期匯總數據(未涉及)

根據購買日期列,利用weekday()函數創建一個新欄位購買星期

發現在該數據集統計期間內,星期5購買商品數量最多.

【表2】

4、不同嬰兒性別購買商品的差異

利用VLOOKUP函數完成多表查詢.

通過用戶ID將兩個表關聯起來.

用法:=vlookup(找什麼,在哪找,第幾列,精確查找0或模糊查找1)

注意:找什麼就是關聯的欄位值

在哪找的第一列必須是找什麼的數據(也就是關聯欄位值)

選中要出入函數的單元格(這裡新建一列):找用戶ID(因為2個都有),在表2找,第3列(嬰兒性別),0查找,最後放到表1最後一列

這裡選擇將表2信息同步到表1,因為表1的數據更多。(出生日期同步過來需要在表1設置單元格格式:日期,不然顯示的不是日期)

4.1不同嬰兒性別商品購買量差異

發現女嬰用品銷量為935,男嬰用品銷量為559,女嬰用品銷量大約是男嬰銷量的2倍.

4.2不同性別嬰兒用品的購買偏好

男嬰用戶購買商品一級類別為50008168最多,購買數量為200.

女嬰用戶購買商品一級類別為50014815最多,購買數量為352.

5.不同嬰兒年齡購買商品的差異

法一:用year函數。法二:利用(購買日期-出生日期之差/365)再round函數取整,計算購買時嬰兒的年齡。(left函數不可用:Left是取左邊開始的位數,8位數格式可以用,但是8位數格式不是正常日期格式,如果已經轉換成正常日期格式用year,日期格式本質是數字,用left取出來的就是數字的前四位。)

將年齡計算結果為負數的利用IF函數變為未出生

5.1不同年齡嬰兒商品購買量差異

可以看到擁有1歲嬰兒的用戶購買量最多,為819件.

同時我們注意到年齡有為28歲的,這顯然不是嬰兒了,應該是將嬰兒出生日期填成購買者的出生日期了.

我們也可以可以利用Vlookup函數對年齡進行分組(如何操作,借鑒理解:https://jingyan.baidu.com/album/870c6fc366b9d4b03fe4beb7.html?picindex=3)

未絕對引用

Fn+f4,絕對引用,注意先不要隱藏數據進行分析

出現問題,不知道如何解決

5.2不同年齡段嬰兒用品的購買偏好

嬰兒年齡在3歲以下的用戶更願意購買商品一級類別為50014815的商品,購買量為429.

嬰兒未出生的用戶更願意購買商品一級類別為28的商品,購買量為36.

嬰兒在3歲及以上的用戶更願意購買商品一級類別為50008168的商品.


你要是總保持快樂,一點負面情緒都沒有,我都懷疑你不正常~


活著就是讓自己開心,讓家人朋友快樂,祝新年快樂


有點中二,說我的,因為我想說一句,因為活著而活著。活著本身就是一件很奇妙的事情,你從生下來就不是為了快樂而活著的呀,但這不代表你不能為了快樂而活著。人從生下來就會遇到很多事,同時你從生下來就被給寄予很多希望,不管你有父母,有無親人,因為你既然能被生下來,那就說明有一刻,哪怕只有一秒,那也是有人希望你活著,不管對方出於什麼目的,對你好,亦或對你壞,為了活著而活著,總感覺自己好傻,不過話又說回來了,你為什麼要想那麼多呢?簡單一點,不就是為了活著而活著,因為你不管出於什麼原因,你現在還活著,那你就是因為你想活著,所以,不管你現在活的是開心不開心,或者自我厭棄,或者處於人生低谷,那又有什麼關係呢?畢竟你活著本身就是為了活著,很單純的活著,至於你能活成什麼樣子,那纔是你可以決定的。以上頭是個人觀點,沒忙上,忙的話就很抱歉了


推薦閱讀:
相關文章