如何七周成為數據分析師06:數據可視化之手把手打造BI
本文是《如何七周成為數據分析師》的第六篇教程,如果想要了解寫作初衷,可以先行閱讀七周指南。溫馨提示:如果您已經熟悉BI,大可不必再看這篇文章,或只挑選部分。
前言
我們上一篇《如何七周成為數據分析師05:數據可視化之打造升職加薪的報表》教大家如何制作清晰美觀的報表以及相應技巧,但是報表是結果的呈現,并不是數據分析的過程。
數據分析師更多用到的報表是BI。
BI全稱商業智能(Business Intelligence),在傳統企業中,它是一套完整的解決方案。將企業的數據有效整合,快速制作出報表以作出決策。涉及數據倉庫,ETL,OLAP,權限控制等模塊。
今天的學習我們只著重于數據分析過程,使用Power BI打造數據分析師Dashboard報表。為了更好的學習和實踐,我們依舊會使用《如何七周成為數據分析師03:手把手教你Excel實戰》的數據進行操作。這是做出的簡單作品。
如果你還沒有數據,請在公眾號:qinlu中的會話頁發送關鍵詞「練習數據」獲取下載地址。
Power BI在微軟官網有下載(注不注冊無所謂的),只需要下載Desktop桌面操作版,大小約120MB。暫時只推出Win版本。
大家如果在下載過程中出現CAB文件損壞錯誤,大概是某軟哪方面又出錯了,可以換瀏覽器下載,也可以下載中文繁體版。反正我是一直報錯。
為了方便大家偷懶,可以在公眾號:qinlu中會話頁發送關鍵詞「BI下載」獲取官網下載地址。
什么是Power BI
BI工具主要有兩種用途。一種是利用BI制作自動化報表,數據類工作每天都會接觸大量數據,并且需要整理匯總,這是一塊很大的工作量。這部分工作可以交給BI自動化完成,從數據規整、建模到下載。
另外一種是使用其可視化功能進行分析,BI的優點在于它提供比Excel更豐富的可視化功能,操作簡單上手,而且美觀,如果大家每天作圖需要兩小時,BI會縮短一半時間。
BI作為企業級應用,可以通過它連接公司數據庫,實現企業級報表的制作。這塊涉及數據架構,就不深入講了。
Power BI是微軟家的。如果大家熟悉Excel,應該會知道微軟推出的Power Query、Power Pivot、Power View和Power Map,是Excel上非常強大的四個插件。Power BI則是微軟將它們作為集合推出。
Power Query是用于數據提取、整合、搜索的插件。它偏向數據模型的建立,而不是單元格的使用。
Power Pivot是數據透視表的高級應用,使用DAX能進行大量的科學計算。性能方面,比Excel函數要快兩個量級,百萬級的處理不成問題。
Power View是圖表的高級應用,實現了過濾、聯動、拖拽等功能。
Power Map是可視化地圖。
如果大家熟練掌握以上四個插件,那么在Excel上也能實現部分BI。畢竟Excel是企業中人手一款的工具,和BI相比有輕量級的好處,雖然數據分析師需要掌握的工具更多。
BI的步驟
市面上有很多豐富的BI工具,Tableau,QlikView,BDP等,各有側重,也各有價格。但是操作過程都是相似的,大體分為五個步驟:數據源讀取、數據清洗、數據關聯、圖表制作、Dashboard整合。熟悉了其中一個,再學會另外的就不難。
因為我工作用的BI是私有化部署到服務器,直接連接生產環境的,演示不方便。所以才用Power BI演示,實際我也說不上熟練。
數據源讀取
我們打開Power BI,它會讓我們登錄,不用管它。
界面和Office軟件比較接近。上面是操作工具項,左側欄是導航欄。
Power BI 的左側導航欄對應三個模塊:儀表板、報表和數據集。儀表板或報表需要數據才能操作,我們先讀取數據集。
點擊工具欄的取得資料(奇怪的翻譯)。
Power BI支持各類豐富數據源(市面上絕大部分BI都支持,只是讀取方式略有差異),除了Excel和CSV 文件,它還支持Acess、SQL數據庫、Hadoop/HDFS、Spark、第三方API等。
這是新手教程,連接CSV即可,選擇載入練習數據DataAnalyst。
這里可以針對數據編輯,先略過,選擇載入。
自動跳轉到數據報表頁,數據報表(Report)是數據規整和清洗過程。
大家還記得實戰篇中演示的數據清洗嗎?之前我們體驗了一遍Excel函數清洗的過程。這次需要用BI再進行一遍清洗。數據清洗是分析師最蛋疼且耗時持久的工作,沒有之一。
數據清洗
Power BI有一個高級功能叫DAX(Data Analysis Expressions),它是整個 Power BI 使用的公式語言。
DAX近似Excel函數(大多數第三方BI,函數均接近Excel),故它針對新手非常友好。如果大家已經熟悉Excel函數,上手速度會很快?;旧虾瘮得侄家粯?,如果不熟悉,可以查閱官網提供的文檔。
我們先清洗報表中的薪水salery,和實戰篇過程一樣,需要將其拆分成兩個新列,并且計算平均值。
點擊模型項的新建資料行(這里的翻譯應該不對,應是column列,后文我都用列表示),此時新增加的列沒有任何內容。我們需要做的操作就是以salery生成兩列。
這里需要用到DAX。當成函數使用它就行,不過Excel是單元格級別的引用,而DAX中的任何引用、計算、匯總等,都是以列為單位的。
=’Table Name'[ColumnName]
這是最簡單的引用,Table Name是我們這張報表的名字,我載入的csv叫DataAnalyst,那么報表就叫做DataAnalyst,ColumnName是我們需要引用的列,名字叫做salary。下圖公式就是范例。
如果表名中有空格,需要加引號,如果沒有則不需要。如果是跨表引用,TableName是必須的,否則只需要ColumnName。DAX支持自動填充,可以通過模糊輸入+回車快速輸入。
我說過它近似Excel,那么Excel加減乘除的習慣可以直接使用在上面。
=’Table Name'[ColumnName1]+’Table Name'[ColumnName2]*3
接下來繼續清洗步驟,我們查找k所在的字符串位置。
=search(“k”, DataAnalyst[salary],1)
利用left函數截取工資下限。
=left(DataAnalyst[salary],search(“k”, DataAnalyst[salary],1)-1)
搞定。資料行重命名為bottomSalery。接下來是工資上限topSalery,使用”-“截取的時候報錯了。
=search(“-“, DataAnalyst[salary],1)
檢查一下發現原來是有“10K以上”這類字符串。DAX查找不到“-”,這時需要返回一個出錯時表達的值。因為10k以上的描述無法確定工資上限,那么我們就把返回的值限定為bottomSalery。
在這里請記住,DAX的容錯性比Excel低,只要DAX中有一行返回Error,那么整列都是Error。我們需要用Iferror函數保證容錯性。
這里給出topSalary的計算,比較繁瑣。
topSalery = IFERROR(mid(DataAnalyst[salary],SEARCH("-",DataAnalyst[salary],1)+1,LEN(DataAnalyst[salary])-SEARCH("-",DataAnalyst[salary],1)-1),DataAnalyst[bottomSalery])
之后新建一列使用(DataAnalyst[bottomSalery]+DataAnalyst[topSalery])/2 計算該崗位的平均工資。
大家看到這里,是不是覺得DAX公式非常長?新手可以多增加輔助列來進行計算。
Excel中有比較方便的分列功能,那么Power BI中是否擁有呢?答案是肯定的,右鍵點擊列,選擇編輯查詢選項。
這里依舊吐槽翻譯。分割資料行就是我們熟悉的分列功能。選擇自定義,用“-”即可完成分列(原始數據會被拆分,所以建議先復制一列)。
實戰篇提到過,我們的北京數據是有重復值的,那么我們通過positionId這職位的唯一標示,來刪除重復項。右鍵點擊移除重復項目即可。
我們再看一下查詢編輯的其他功能。
分組依據可以認為是數據透視表??梢赃x擇多個字段進行分組。對結果進行求和、計數等操作。
如果是訂單、用戶行為、用戶資料等大量數據,一般會以分組形式進行計算。不同分組字段,會生成不同的維度,像范例中的城市、工作年限,教育背景都是維度,也是圖表的基礎。如果生成的維度足夠多,我們能利用維度組成數據模型,這是OLAP的概念。
除此以外,也能利用過濾直接篩選數據。我們選擇出含有數據分析、分析的數據。排除掉大數據工程師等干擾職位。
這里支持多條件復雜邏輯篩選。
到這里,我們已經完成實戰篇中的清洗過程中,我這次簡單化了。以上步驟都能通過右側的套用步驟還原和撤銷。這里不會出現bottomSalery這類列。
之后選擇工具欄的關閉并套用,報表數據就會更新。最后數據2300多行。
通過數據查詢和報表DAX公式,我們就能完成數據清洗和規整的步驟。主要思路是:移除重復值、過濾目標數據、清洗臟數據、數據格式轉換。
數據關聯
我們工作中會用到很多數據,不可能依靠一張表走天下。若是在Excel中,我們經常用Vlookup函數將多張表關聯匯總。Power BI則用拖拽關聯數據,更方便。一般是先關聯再清洗。
因為我的數據只有一張表,用不到關聯,以官網截圖為例。
很簡單,用拖拽將Product的manufactureId和Manufacturer的manufactureId關聯,我們可以理解成做了vlookup引用,也可以想成SQL的Join。
分析會涉及到很多復雜因素,這些因素相關的數據不會安安靜靜給你呆在一張表里,而是不同的表,所以需要用到數據關聯。
數據關聯在學習到SQL后會更加清晰,這是SQL的核心概念之一。
圖表
進入圖表設計階段,點擊側邊欄第一個項。BI比Excel好的地方在于,它只要拖拽就能設計和生成。
點擊任一圖表,畫布上會自動生成圖形,要切換圖表類型直接點擊其他即可。我們把城市和平均工資拖拽到視覺效果下的欄目,它會自動生成圖表。不同圖表需要的維度、軸都不一樣,具體按提示進行。
視覺效果下有設計選項,可以將圖表調整的更美觀,這里不詳細介紹了。
點擊新增視覺效果(繼續吐槽翻譯),可以繼續在畫布上增加圖表。絕大部分BI,都是支持聯動的,所謂聯動,通俗講,就是點擊圖表上的維度元素,其他數據也會按此維度相應變化。
上圖就是一個很好的聯動例子,點擊城市維度的北京,其他圖表都變了,平均工資由14.23變成15.23。而學歷則變成突出顯示,顯示出了北京的博士們薪水遠高于平均水準。
圖表聯動帶來更好的數據洞察,將不同數據維度的組合和選取,為分析師帶來決策能力的提升。當然我最喜歡的特點之一是省時間。
通過不斷的圖表組合,就能生成數據分析師自己的分析畫布。這塊畫布叫作Dashboard。當然圖表好看與否,就取決于分析師的設計品味了(這個我教不了你們,哈哈)。
如果維度過多,大家可以插入視覺選項中的交叉篩選器,添加過濾功能,常用于精細化的分析,例如時間維度。圖表右上角按鈕,還能選擇導出數據,導出一份該圖表的csv數據。
我們也能將其發布到網上,作為同事和企業間協作,或者手機端瀏覽數據用。當然這里需要注冊賬號,就看大家意愿了。
更多功能留待大家學習,到這里,Power BI的新手教程就結束了。我列舉了常用的功能,不知道大家有沒有從Excel圖表水平躍升到一個新階段,大家可以自己拿數據做圖表報告作為分析師行業的敲門磚。如果還有疑問,就借助官網文檔學習,BI作為一個領域,它值得數據分析師深入。
以下是一些補充:
范例
因為時間的關系,我沒有講解更多的樣式設計內容。大家可以去官網下載范例,含有原始數據練習。主要是學習他人的報表匯制思路。
另外Power BI的圖表偏少,類似標靶圖、箱線圖都沒有。不過官網有各類圖表下載。搜索pbiviz即可,沒有中文。
R集成
Power BI在它內部已經集成了R語言,沒錯,就是統計學中的R語言。如果你覺得視圖功能還不夠強大,那么我們可以利用R來繪制圖表,甚至借助R做回歸分析等。當然R是第七周的內容。這里只以官網截圖為例。
數據更新
BI很重要的一個功能是數據更新,它是報表自動化的基礎,它通常和SQL關聯。我們使用CSV,只能往里面黏貼數據更新,還是繁瑣了些,只屬于半自動化。這將在學會SQL后解決。
相關閱讀
如何七周成為數據分析師01:常見的Excel函數全部涵蓋在這里了
如何七周成為數據分析師:Excel技巧之甘特圖繪制(項目管理)
#專欄作家#
秦路,微信公眾號ID:tracykanc,人人都是產品經理專欄作家。
本文由 @秦路?原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自PEXELS,基于CC0協議
這一節重操作,而不是方法吧?我想知道如何找出核心的業務指標,常見的儀表板設計原則有哪些?如何提高BI的性能等等
請問數據更新是直接復制粘貼嗎?
不會爬蟲抓取數據,可以請樓主把抓取的數據分享出來給大家用嗎
沒找到qinlu的公眾號啊
公眾號名稱就叫秦路,微信號:tracykanc
這章節講的不太容易懂,打開軟件看介紹都不知道怎么操作
請在公眾號:qinlu中的會話頁發送關鍵詞「練習數據」獲取下載地址。在哪里啊