從0開始學電商數(shù)據(jù)分析-19
時間:2023-03-15 22:20:01 | 來源:電子商務(wù)
時間:2023-03-15 22:20:01 來源:電子商務(wù)
大家好,我是零一。我是一名數(shù)據(jù)分析師,8年的電商從業(yè)經(jīng)驗,擅長電商領(lǐng)域的數(shù)據(jù)分析和挖掘,常用的工具有Excel、PowerBI、Python、R等。
這一篇很早就已經(jīng)寫好,但是我忘記發(fā)了,今天自己看自己的訂閱號才發(fā)現(xiàn),呵呵……
大家好,我是零一。我是一名數(shù)據(jù)分析師,8年的電商從業(yè)經(jīng)驗,擅長電商領(lǐng)域的數(shù)據(jù)分析和挖掘,常用的工具有Excel、PowerBI、Python、R等。大家好,我是零一。我是一名數(shù)據(jù)分析師,8年的電商從業(yè)經(jīng)驗,擅長電商領(lǐng)域的數(shù)據(jù)分析和挖掘,常用的工具有Excel、PowerBI、Python、R等。
這一篇很早就已經(jīng)寫好,但是我忘記發(fā)了,今天自己看自己的訂閱號才發(fā)現(xiàn),呵呵……
之前對于我的去向有很多的猜測,我先澄清一下,我并沒有去任何一家培訓(xùn)機構(gòu),我自己現(xiàn)在也不打算做培訓(xùn),我也不打算做自媒體。我本是電商人,2013年在給【孵化班】上課的時候,我就說過,哪一天我不想講課了,就會回來開店做運營。
現(xiàn)在事實就是這樣。
雖然做培訓(xùn)可以快速變現(xiàn),但這不是我的菜,我喜歡分享但我更喜歡做一些實在的事情。
我仍然看好培訓(xùn)市場,但我看好的是行業(yè)的垂直培訓(xùn),而不是現(xiàn)在的通用型的培訓(xùn)。
行業(yè)經(jīng)驗+運營經(jīng)驗才足夠靠譜。我喜歡也看好這種靠譜的東西。
扯遠了,不知道有沒有扯到蛋……
回到主題,今天還是講數(shù)據(jù)分析。
有朋友在我微信留言,做數(shù)據(jù)分析的時候經(jīng)常為拿不到數(shù)據(jù)而苦惱,感慨巧婦難為無米之炊。問我說,想做到和我一樣要什么數(shù)據(jù)自己寫腳本爬取,需要學多久。
這個問題,其實我也不知道。快的人一兩個月,慢的人是無期徒刑……
做什么事情,我建議還是隨自己的興趣走,有興趣的,就買本參考書自己學習一下,像我用的VBA是很基礎(chǔ)的,參考書已經(jīng)很成熟了,隨便在亞馬遜買一本大全去練習就好了,我建議是先借著參考書抄我之前寫過的表格,這應(yīng)該是最快的學習路線了。
另外,我發(fā)現(xiàn)很多店鋪的數(shù)據(jù)分析專員就是做記錄的工作,每天記錄一些數(shù)據(jù),而且是散開的,并沒有把數(shù)據(jù)匯總到一張工作表里面,就像下圖所示。
等到哪天要分析的時候,就蛋疼了,可能要花個半天的時間把每一天的數(shù)據(jù)匯總到一張工作表里面,這就扯到蛋了。其實只要寫個宏,就可以把所有的數(shù)據(jù)自動匯總起來。
這個環(huán)節(jié)在數(shù)據(jù)挖掘里面算是ETL(包含數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、加載)的過程,很多時候會出現(xiàn)這種需要的數(shù)據(jù)是分散的,可能是在同一張工作簿里面,但分散在不同的工作表;也可能是分散在不同的工作簿里面。
很多工具都可以對數(shù)據(jù)做ETL,我接觸過的比較專業(yè)的工具應(yīng)該是kattle。我們一般用不到專門做ETL的工具,像MySQL等數(shù)據(jù)庫是自帶這塊功能的,Excel里面也有數(shù)據(jù)庫,Excel Power BI的成員之一:POWERPIVOT。
POWERPIVOT是工作簿的外掛,當我們工作簿放不下數(shù)據(jù)的時候(Excel2013 是有1048576*16384的數(shù)據(jù)量),就可以使用POWERPIVOT,而且相同的數(shù)據(jù)量下,放在POWERPIVOT里面占用的空間要小很多,而且運算速度也快很多,如果不會用SQL的朋友,可以考慮使用POWERPIVOT來處理大量的數(shù)據(jù)。
一個不小心,又扯遠了,我們回來。
今天先解決上面的簡單問題,一次講太多這篇文章就白寫了,沒人看%>_<%。
首先文章使用到的示例數(shù)據(jù)集在我網(wǎng)盤里面,有需要的自己找。
先觀察一下數(shù)據(jù),這里假定每一張工作表的格式都一致,如果有做到記錄的數(shù)據(jù)每張工作表都不一樣的格式的話,那我也是醉了……
上面的數(shù)據(jù)是我用RAND()函數(shù)生成的,字段也是隨便設(shè)置的。
下面我們打開Visual Basic,打開【開發(fā)工具】選項卡的方法就不累述了,還不會的可以在公眾號回復(fù)【112】
進入Visual Basic后,可以看到左上角的資源管理器。
我們可以觀察到,有8張表,從Sheet1(4月1日)開始,按次序到Sheet8,原因是我在操作的過程中是按次序新建工作表,沒有刪除過工作表,你們自己的文件就可能不是按這個次序的。括號前面的是表的對象名稱,不可以亂取,一般都不改的,要改也是在工程里面改動。括號里面是工作表對外的名字,是自己可以隨便重命名的。兩個名字在調(diào)用的時候只是寫法不同,但因為括號里面的名字是隨時可以改動,所以一般在VB里面調(diào)用的時候不用括號里面的名字。
第一步先插入一個模塊。
然后寫入下列代碼
==============================
Sub hz()
Sheets.Add(Sheets(1)).Name = "工作簿匯總"'在第一張工作表的前面新建一張工作表,名字設(shè)定為【工作簿匯總】
i = Sheets.Count'獲取工作表的數(shù)量
l = 1
m = 1
For j = 2 To i'j=2代表從第二張工作表開始到最后一張工作表
k = Sheets(j).[A65536].End(xlUp).Row
Sheets(j).Rows(l & ":" & k).Copy Sheets("工作簿匯總").Cells(m,
1)'復(fù)制數(shù)據(jù)
Sheets("工作簿匯總").Range("L" & m &
":" & "L" & m + k - 1) = Sheets(j).Name
m = Sheets("工作簿匯總").[A65536].End(xlUp).Row + 1
l = 2
Next j
Sheets("工作簿匯總").Cells(1, 12) = "日期"
End Sub
=========================
寫好代碼后,在開發(fā)工具里面運行宏
運行后就可以得到結(jié)果
這里并不涉及數(shù)據(jù)結(jié)構(gòu)的變換,因為用的是【copy】方法
Sheets(j).Rows(l & ":" & k).Copy Sheets("工作簿匯總").Cells(m,
1)'復(fù)制數(shù)據(jù)
這條語句跟我們手動操作的復(fù)制粘貼是一樣的效果的。
如果需要變換結(jié)構(gòu)的話,就不能用copy方法。
比如下面這種結(jié)構(gòu)
不同的結(jié)構(gòu)在做分析的時候便捷程度不同,如果是要用統(tǒng)計方法或者數(shù)據(jù)挖掘的方式,則需要根據(jù)算法要求的格式去變換。一般使用比較頻繁的就是以上兩種,第一種是扁平結(jié)構(gòu),每個維度都是獨立的字段,是做數(shù)據(jù)挖掘的時候常用的結(jié)構(gòu)。第二種的字段是固定的,會隨著數(shù)據(jù)的增加而增加觀測值,在用數(shù)據(jù)透視表的時候會方便一些。
下面附上把扁平型結(jié)構(gòu)的數(shù)據(jù)變換成窄長型的數(shù)據(jù)結(jié)構(gòu)的代碼
=======================
Sub 修改格式()
i = Sheet9.[A65536].End(xlUp).Row'Sheet9里面是扁平結(jié)構(gòu)的數(shù)據(jù)
j = Sheet9.[IV1].End(xlToLeft).Column - 1
c = 2
Sheet10.Cells(1, 1) = "寶貝"
Sheet10.Cells(1, 2) = "數(shù)據(jù)"
Sheet10.Cells(1, 3) = "維度"
Sheet10.Cells(1, 4) = "時間"
For a = 2 To j
For b = 2 To i
Sheet10.Cells(c, 1) = Sheet9.Cells(b, 1)
Sheet10.Cells(c, 2) = Sheet9.Cells(b, a)
Sheet10.Cells(c, 3) = Sheet9.Cells(1, a)
Sheet10.Cells(c, 4) = Sheet9.Cells(b, 12)
c = c + 1
Next b
Next a
End Sub
=======================
下一篇會跟大家講如何用EXCEL的POWERPIVOT來分析“大”數(shù)據(jù)。