微軟PowerBI考試 PL300-在 Power BI 中清理、轉換和加載數據
Power Query 具有大量專門幫助您清理和準備數據以供分析的功能。 您將了解如何簡化復雜模型、更改數據類型、重命名對象和透視數據。 您還將了解如何分析列,以便知曉哪些列包含有價值的數據,以用于進行更深入的分析。
簡介
假設你已從若干不同的源將數據導入了 Power BI,但在檢查這些數據時,這些數據并沒有做好用于進行分析的準備。 是什么使數據沒有為分析做好準備?
檢查數據時,你發現了一些問題,包括:
名為 Employment status 的一列僅包含數字。
若干列包含錯誤。
某些列包含 NULL 值。
某些列中顯示的客戶 ID 似乎是重復復制的。
單一地址列合并有“街道地址”、“城市”、“省/市/自治區”以及“郵政編碼”。
你隨即開始處理數據,但每次在報表上創建視覺對象時,都會得到錯誤的數據和不正確的結果,并且關于銷售總額的簡單報表也是錯誤的。
由于臟數據可能過于繁多,你可能會感到沮喪,但你決定開始著手處理,想辦法使此語義模型盡可能恢復純凈的狀態。
幸運的是,Power BI 和 Power Query 為你提供了功能強大的環境,用于清理和準備數據。 清理數據具有以下優點:
度量值和列在執行聚合和計算時會生成更準確的結果。
表經過了整理,用戶可以從中以直觀的方式查找數據。
重復項會被刪除,使數據導航更為簡單。 它還將生成可用于切片器和篩選器的列。
一個復雜的列可以被拆分為兩個更簡單的列。 可以將多列合并成一列,易于閱讀。
可以將代碼和整數替換為可讀的值。
通過學習本模塊,你將了解如何:
解決不一致、意外或 NULL 值以及數據質量問題。
應用用戶友好的值替換。
分析數據,使你在使用數據之前能了解特定列的更多信息。
評估和轉換列數據類型。
將數據形狀轉換應用于表結構。
合并查詢。
將用戶友好的命名約定應用于列和查詢。
在高級編輯器中編輯 M 代碼。
調整初始數據
Power BI Desktop 中的 Power Query 編輯器使你能夠調整(轉換)導入的數據。 你可以完成如下操作:重命名列或表、將文本更改為數字、刪除行,以及將第一行設為標頭等。 務必對數據進行調整,從而確保它滿足你的需求并且適合在報表中使用。
你已將兩個源中的原始銷售數據加載到一個 Power BI 模型中。 某些數據來自銷售團隊在 Microsoft Excel 中手動創建的 .csv 文件。 其他數據是通過連接到你組織的企業資源計劃 (ERP) 系統來加載的。 現在,當在 Power BI Desktop 中查看數據時,你注意到數據是雜亂的;不需要的某些數據和所需的某些數據的格式都不正確。
在開始生成報表之前,需要使用 Power Query 編輯器對數據進行清理和調整。
Power Query 編輯器入門
若要開始調整數據,請在 Power BI Desktop 的“開始”選項卡上選擇“轉換數據”選項來打開 Power Query 編輯器。
?
在 Power Query 編輯器中,所選查詢中的數據會顯示在屏幕中間,而在屏幕左側,“查詢”窗格會列出可用的查詢(表)。
在 Power Query 編輯器中工作時,你對數據進行調整的所有步驟都會被記錄下來。 隨后,每當查詢連接到數據源時,它會自動應用你的步驟,從而使你的數據始終按你指定的方式調整。 Power Query 編輯器僅對數據的特定視圖進行更改,因此,你無需擔心會對原始數據源造成任何更改。 可以在屏幕右側的“查詢設置”窗格中查看你的步驟列表以及查詢的屬性。
Power Query 編輯器功能區包含許多可用于選擇、查看和調整數據的按鈕。
圖片
識別列標頭和名稱 對初始數據進行調整的第一步是標識數據內的列標頭和名稱,然后評估它們所在的位置以確保它們位于正確的位置。
在下面的屏幕截圖中,SalesTarget(一個未提供的示例)的 csv 文件中的源數據有一個按產品分類的目標,以及按月份拆分的一個子類別,這兩者都被整理成了列。
?
然而,你會注意到數據沒有按預期導入。
?
這使數據難以閱讀。 在數據處于當前狀態時會發生問題,因為列標頭位于不同的行中(標記為紅色),并且若干列有未描述的名稱,例如“Column1”和“Column2”等。
在識別了列標頭和名稱所在的位置后,可以進行更改以重新整理數據。
提升標頭
當表在 Power BI Desktop 中創建后,Power Query 編輯器會假設所有數據都屬于表行。 但是,數據源的第一行可能會包含列名稱,這是之前 SalesTarget 示例中發生的情況。 若要更正此誤差,需要將第一個表行提升為列標頭。
可以通過兩種方式提升標頭:在“開始”選項卡上選擇“將第一行用作標頭”選項,或選擇“Column1”旁邊的下拉菜單按鈕,然后選擇“將第一行用作標頭”。
?
下圖說明了“將第一行用作標頭”功能會對數據造成哪些影響:
重命名列
調整數據的下一步是檢查列標頭。 你可能會發現,一列或多列的標頭錯誤、標頭拼寫錯誤,或者標頭命名約定不一致或對用戶不友好。
請參閱前面的屏幕截圖,上面顯示了“將第一行用作標頭”功能的影響。 請注意,包含子類別“Name”數據的列現在的標頭變成了“Month”。 此列標頭不正確,因此需要對它進行重命名。
可以通過兩種方式對列標頭進行重命名。 一種方法是右鍵單擊標頭,選擇“重命名”,編輯名稱,然后按 Enter。 或者,可以雙擊列標頭,然后使用正確的名稱覆蓋該名稱。
還可以通過以下方法解決此問題:刪除(跳過)前兩行,然后將列重命名為正確名稱。
刪除前幾行?
在調整數據時,可能需要刪除前幾行,例如,當這些行為空白或者包含報表中不需要的數據時。
繼續使用 SalesTarget 示例時,可以注意到,第一行為空白(沒有數據),第二行的數據已不再需要。?
若要刪除這些多余的行,請在“開始”選項卡上選擇“刪除行”>“刪除前幾行”。
刪除列
數據調整過程中的一個關鍵步驟是刪除不必要的列。 越早刪除這些列越好。 刪除列的一種方式是在從數據源獲取數據時限制列。 例如,如果使用 SQL 從關系數據庫中提取數據,則需要在 SELECT 語句中使用列列表對提取的列進行限制。
在此過程的早期階段刪除列(而不是之后再進行刪除)是最好的,特別是在表之間建立了關系的情況下。 刪除不必要的列將有助于你專注于所需的數據,并有助于改進 Power BI Desktop 語義模型和報表的整體性能。
檢查每一列,并詢問自己是否真的需要里面所含的數據。 如果不打算在報表中使用這些數據,那么這些列對你的數據模型而言沒有任何價值。 因此,應該刪除這些列。 如果你的需求隨著時間改變了,你之后可以隨時添加這些列。
可以通過兩種方式刪除列。 第一種方法是選擇要刪除的列,然后在“開始”選項卡上選擇“刪除列”。
?
或者,可以選擇要保留的列,然后在“開始”選項卡上選擇“刪除列”>“刪除其他列”。
逆透視列
逆透視是 Power BI 一項有用的功能。 此功能可用于任意數據源中的數據,但你通常會在從 Excel 導入數據時使用此功能。 下面的示例顯示了包含銷售數據的示例 Excel 文檔。
?
盡管數據最初可能是有意義的,但難以通過這些數據創建從 2018 年到 2019 年合并的所有銷售總額。 你的目標是通過三列在 Power BI 中使用這些數據:Month、Year 和 SalesAmount。
將數據導入到 Power Query 中時,它將類似下圖所示。
?
接著,將第一列重命名為 Month。 此列未被正確標記,因為在 Excel 中,該標頭標記的是 2018 和 2019 列。 突出顯示 2018 和 2019 列,在 Power Query 中選擇“轉換”,然后選擇“逆透視”。
可以將 Attribute 列重命名為 Year,將 Value 列重命名為 SalesAmount。
逆透視簡化了稍后針對數據創建 DAX 度量值的過程。 完成此過程后,即表示你現在創建了一種通過 Year 和 Month 列來切分數據的更簡單的方式。
列透視
如果要調整的數據是平面數據(換句話說,即它包含許多詳細信息,但未按任何方式整理或分組),結構的缺少可以會使你難以識別數據中的模式。
可以使用“透視列”功能將平面數據轉換成一個表,其中包含列中每個唯一值的聚合值。 例如,你可能需要使用此功能來通過使用不同的數學函數對數據進行匯總,例如“Count”、“Minimum”、“Maximum”、“Median”、“Average”或“Sum”。
在 SalesTarget 示例中,可以對列進行透視以獲取每一產品類別中產品子類別的數量。
在“轉換”選項卡上,選擇“轉換”>“透視列”。
?
在顯示的“透視列”窗口中,從“值列”列表中選擇一列,例如“Subcategory name”。 展開高級選項,從“聚合值函數”列表中選擇一個選項,例如“Count (All)”,然后選擇“確定”。
?
下圖說明了“透視列”功能如何改變數據的組織方式。
?
Power Query 編輯器會記錄對數據進行調整所采取的全部步驟,步驟的列表會顯示在“查詢設置”窗格中。 如果進行了所需的全部更改,請選擇“關閉并應用”關閉 Power Query 編輯器,將更改應用到你的數據模型。 然而,在選擇“關閉并應用”之前,可以在 Power Query 編輯器中采取進一步的步驟來清理和轉換數據。 本模塊中隨后將介紹這些額外的步驟。
簡化數據結構
將數據從多個源導入 Power BI Desktop 中時,數據將保留其預定義的表和列名。 你可能需要更改其中的一些名稱,使它們的格式保持一致、更易于處理,并且對用戶而言更具有意義。 可以在 Power BI Desktop 中使用 Power Query 編輯器對這些名稱進行更改并簡化數據結構。
為了繼續之前對模型中的初始數據進行調整,你需要采取進一步措施來簡化銷售數據的結構,并準備好數據為銷售團隊開發報表。 你重命名了這些列,但現在你需要檢查查詢(表)的名稱以確定是否可以進行任何改進。 你也需要查看列的內容,并替換任何需要更正的值。
重命名查詢?
將不常見或無用的查詢名稱更改為更明顯或用戶更熟悉的名稱是比較好的做法。 例如,如果將產品事實數據表導入 Power BI Desktop 并且查詢名稱顯示為“FactProductTable”,則可能需要將它更改為對用戶易記名稱,例如“Products”。 同樣,如果導入視圖,此視圖的名稱可能會帶有“v”前綴,例如“vProduct”。 人們可能會發現這一名稱不清楚并且令人混淆,因此,可能需要刪除此前綴。
在本例中,你檢查了 TargetSales 查詢的名稱,意識到此名稱是無用的,因為你將會有針對每年帶有此名稱的查詢。 若要避免混淆,需要將年份添加到查詢名稱。
在 Power Query 編輯器中,在數據左側的“查詢”窗格中,選擇想要重命名的查詢。 右鍵單擊查詢并選擇“重命名”。 編輯當前名稱或鍵入新名稱,然后按 Enter。?
替換值?
可以使用 Power Query 編輯器中的“替換值”功能將所選列中的任何值替換為另一個值。
在本例中,你會注意到,在“Attribute”列中,月份 December 拼寫錯了。 需要更正此拼寫錯誤。 選擇包含想要替換的值的列(在本例中為“Attribute”),然后選擇“轉換”選項卡上的“替換值”。
在“要查找的值”框中,輸入想要替換的值的名稱,接著在“替換為”框中,輸入正確的值名稱,然后選擇“確定”。 在 Power Query 中,你無法像在 Excel 中一樣選擇一個單元格和更改一個值。
可以在“查詢設置”窗格中查看對數據進行重建格式和更正所采取的步驟列表。 完成需要進行的所有步驟后,可以選擇“關閉并應用”關閉 Power Query 編輯器,將更改應用到數據模型。 不過,可以采取進一步操作來清理和轉換數據。
替換 NULL 值
?有時,你可能會發現數據源包含 NULL 值。 例如,銷售訂單中的運費金額可能會有一個 NULL 值(只要它與零同義)。 如果此值保持為 NULL,聚合計算將出錯。 一種解決方法是將 NULL 更改為零,這將生成更準確的運費平均值。 在此實例中,使用之前進行的相同步驟將幫助你將 NULL 值替換為零。
?
刪除重復項
?還可以使用 Power Query 中的“刪除重復項”功能從列中刪除重復項,從而在所選列中僅保留唯一名稱。
在本例中,可以注意到“Category Name”列包含每一類別的重復項。 因此,需要創建包含唯一類別的一個表,并將它用于語義模型中。 可以通過以下方式實現此操作:選擇一列,右鍵單擊此列的標頭,然后選擇“刪除重復項”選項。
可以考慮在刪除重復項之前復制表。 “復制”選項位于上下文菜單的頂部,如下面的屏幕截圖所示。 如有需要,在刪除重復項之前復制表使你能夠比較表并能夠使用這兩個表。
命名表、列和值的最佳做法?
表、列和值的命名約束沒有固定的規則,但是,我們建議使用你的組織內常用的并且所有人都一致認同是常用術語的語言和縮寫。
最佳做法是為表、列和度量值提供描述性的業務術語,并將下劃線(“_”)替換為空格。 請務必保持縮寫、前綴以及“number”和“ID”等詞的一致性。如果不是在組織內常用的縮寫,那么過短的縮寫可能會導致混淆。
此外,可以刪除可能在表名中使用的前綴或后綴并改為以簡單的格式對它們進行命名,這將有助于避免混淆。
替換值時,請嘗試想象這些值將如何顯示在報表中。 過長的值可能難以閱讀并且難以融入視覺對象中。 過短的值可能難以理解。 只要文本適合視覺對象,避免對值使用縮寫也是一個不錯的主意。
評估和更改列數據類型
當你從任意數據源導入表時,Power BI Desktop 將自動開始掃描前 1,000 行(默認設置)并嘗試檢測列中的數據類型。 Power BI Desktop 在某些情況下可能不會檢測到正確的數據類型。 如果出現不正確的數據類型,你會遇到性能問題。
在處理平面文件時,例如逗號分隔值 (.CSV) 文件和 Excel 工作簿 (.XLSX),有很大的幾率會遇到數據類型錯誤,因為數據是手動輸入到工作表中的,因此會存在錯誤。 相反,在數據庫中,數據類型是在創建表或視圖時預定義的。
最佳做法是在將數據加載到 Power BI 語義模型中之前在 Power Query 編輯器中評估列數據類型。 如果確定數據類型不正確,則可以進行更改。 可能還需要對列中的值應用某一格式,并且更改列的匯總默認設置。
為了繼續對銷售數據進行清理和轉換以準備用于報表,現在需要評估列以確保它們擁有正確的數據類型。 你需要更正識別到的所有錯誤。
評估 OrderDate 列。 按預期來看,它應包含數值數據,但 Power BI Desktop 錯誤地將列數據類型設置成了文本。 若要對此列進行報告,需要將數據類型從文本更改為日期。
不正確的數據類型可能造成的影響
以下信息使你能夠深入了解 Power BI 未檢測到正確數據類型時可引發的問題。
不正確的數據類型將阻止你創建某些計算、派生層次結構或創建與其他表的正確關系。 例如,如果嘗試要計算 Quantity of Orders YTD,你將遇到以下錯誤,指出 OrderDate 列數據類型不是進行基于時間的計算所需的日期。
Quantity?of?Orders?YTD?=?TOTALYTD(SUM('Sales'[OrderQty]),?'Sales'[OrderDate])
對日期字段應用不正確的數據類型引發的另一個問題是,無法創建日期層次結構,此層次結構便于按年、月或周來分析數據。 以下屏幕截圖顯示了 SalesDate 字段未被識別為日期類型,且將僅作為表視覺對象中的日期列表顯示。 但是,最佳做法是使用日期表并關閉自動日期/時間來移除自動生成的層次結構。?
更改列數據類型
可以在以下兩個位置更改列的數據類型:在 Power Query 編輯器中和 Power BI Desktop 報表視圖中通過使用列工具進行更改。 在加載數據之前,最好在 Power Query 編輯器中更改數據類型。
在 Power Query 編輯器中更改列數據類型
在 Power Query 編輯器中,可以通過兩種方式來更改列數據類型。 一種方法是選擇存在問題的列,在“轉換”選項卡中選擇“數據類型”,然后從列表中選擇正確的數據類型。
另一種方法是選擇列標頭旁的數據類型圖標,然后從列表中選擇正確的數據類型。
?
與在 Power Query 編輯器中所做的任何其他更改一樣,對列數據類型進行的更改也將作為編程步驟被保存。 此步驟稱為“更改類型”,并且將在每次數據刷新時進行迭代。
完成清理和轉換數據的所有步驟后,可以選擇“關閉并應用”關閉 Power Query 編輯器,將更改應用到語義模型。 在此階段,你的數據應已調整好了,適合用于分析和報表。
將多個表合并為一個表
合并查詢的功能非常強大,因為它使你能夠追加或合并不同的表或查詢。 在以下情況下,可以將表合并為一個表:
存在過多的表,使得難以導航一個過于復雜的語義模型。
多個表具有一個類似的角色。
一個表只有一兩個可以放進不同表中的列。
想在一個自定義列中使用來自不同表的多個列。
可以通過兩種不同的方式合并表:合并和追加。
假設你正在為銷售和人力資源團隊開發 Power BI 報表。 他們要求你創建一個聯系信息報表,其中要包含每名員工、供應商和客戶的聯系信息和位置。 HR.Employees、Production.Suppliers 和 Sales.Customers 表中的數據如下圖所示。
?
但是,這些數據來自多個表,因此,這一困境確定了你如何合并這多個表中的數據并創建一個真實數據來源表以從中創建報表。 利用 Power BI 的固有功能,可以將查詢合并到一個表中。
追加查詢 在追加查詢時,你會將數據行添加到另一個表或查詢中。 例如,你可能有兩個表,其中一個表有 300 行,另一個表有 100 行,在追加查詢后,最后將有 400 行。 在合并查詢時,你會將列從一個表(或查詢)添加到另一個表(或查詢)中。 若要合并兩個表,必須有一個列是兩個表之間的關鍵值。
對于之前提及的情況,你將在 HR.Employee 表中追加 Production.Suppliers 和 Sales.Customers 表,以便擁有一個聯系人信息的主列表。 由于你想創建一個表,此表要包含員工、供應商和客戶的所有聯系信息,因此,當你合并查詢時,你的合并表中所需的相關列的命名必須與原始數據表中的命名相同,這樣才能看到一個合并的視圖。
開始合并查詢之前,可以從表中刪除此任務不需要的無關列。 若要完成此任務,請將每個表的格式設置為只有四個包含你的相關信息的列,并對它們進行重命名,使它們全都具有相同的列標頭:ID、company、name 和 phone。 以下圖像是重格式化后的 Sales.Customers、Production.Suppliers 和 HR.Employees 表的代碼片段。
完成重格式化后,可以合并查詢。 在 Power Query 編輯器功能區的“開始”選項卡上,選擇“追加查詢”的下拉列表。 可以選擇“將查詢追加為新查詢”,這意味著追加的輸出將生成一個新查詢或表,或者可以選擇“追加查詢”,這會將行從現有表添加到另一個表中。
下一個任務是創建新的主表,因此需要選擇“將查詢追加為新查詢”。 選擇后會轉至一個窗口,你可以從中將要追加的表從“可用表”添加到“要追加的表”中,如下圖所示。
?
在添加了要追加的表后,請選擇“確定”。 你將被路由到一個新查詢,其中包含所有三個表中的所有行,如下圖所示。
?
現在,你已成功創建了包含員工、供應商和客戶信息的一個主表。 你可以退出 Power Query 編輯器,然后生成圍繞此主表的所有報表元素。
但是,如果是想合并表,而不是將數據從一個表追加到另一個表,此過程將有所不同。
合并查詢
合并查詢時,你將基于表之間通用的列將數據從多個表合并到一個表中。 此過程類似于 SQL 中的 JOIN 子句。 假設銷售團隊現在希望你將訂單和它們對應的詳細信息(當前位于兩個表中)合并到單個表中。 可以通過合并 Orders 和 OrderDetails 這兩個表來完成此任務,如下圖所示。 這兩個表都具有“OrderID”列。
轉到 Power Query 編輯器功能區上的“開始”,然后選擇“合并查詢”下拉菜單,從中可以選擇“將查詢合并為新查詢”。 此選擇將打開一個新窗口,從中可以選擇要從下拉列表中合并的表,然后選擇兩個表都具有的列,在本例中為“orderid”。
還可以選擇如何聯接兩個表,這也是類似 SQL 中的 JOIN 語句的一個過程。 這些聯接選項包括:
左外部?- 顯示第一個表中的所有行以及第二個表中的匹配行。
完全外部?-顯示兩個表中的所有行。
內部?- 顯示兩個表之間匹配的行。
在這樣的情境下,你將選擇使用“左外部”聯接。 選擇“確定”,這會將你路由到一個新窗口,從中可以查看你合并的查詢。
現在,你可以通過不同的方式合并兩個查詢或表,從而根據業務需求以最合適的方式查看你的數據。
在 Power BI 中分析數據
分析數據是指了解數據的細微差別:確定異常、檢查并開發基本數據結構以及查詢數據統計信息,例如行計數、值分布、最小值和最大值,以及平均值等。 這一概念很重要,因為它使你能夠對數據進行調整和整理,以便實現輕松地與數據交互和識別數據的分布,這有助于在幾乎毫不費力的情況下在前端處理數據來開發報表元素。
假設你正在為組織的銷售團隊開發報表。 你不確定數據的結構化方式以及數據是如何包含在表中的,因此,需要在開發視覺對象之前在幕后分析數據。 Power BI 的固有功能使這些任務具有了用戶友好且直接的特性。
檢查數據結構
在 Power Query 編輯器中開始檢查數據之前,應首先了解整理數據的基本數據結構。 可以在 Power BI Desktop 的“模型”選項卡下查看最新語義模型。
?
在“模型”選項卡上,可以通過選擇表或列來編輯特定列和表屬性,并且可以通過使用“轉換數據”按鈕來轉換數據,這會使你轉至 Power Query 編輯器。 此外,可以使用功能區上的“管理關系”來管理、創建、編輯和刪除不同表之間的關系。
查找數據異常和數據統計信息
在創建了到數據源的連接并選擇了“轉換數據”后,會轉至 Power Query 編輯器,你可以從中確定數據中是否存在異常。 數據異常是指數據中存在離群值。 確定存在哪些異常可有助于確定數據的正常分布情況,以及是否存在需要進一步調查的特定數據點。 Power Query 編輯器通過使用“列分布”功能來確定數據異常。
選擇功能區上的“視圖”,在“數據預覽”下,可以從一些選項中進行選擇。 若要了解數據異常和統計信息,請選擇“列分布”、“列質量”和“列分析”選項。 下圖顯示了出現的統計信息。
“列質量”和“列分布”顯示在數據列上方的圖表中。 “列質量”顯示有效、錯誤和空數據的百分比。 理想情況下,100% 的數據都需是有效數據。
?
“列分布”顯示數據在列內的分布情況以及明確和唯一值的計數,這兩者都可以指示出數據計數的詳細信息。 明確值是列中所有不同的值,包括重復值和 NULL 值,而唯一值則不包含重復值和 NULL 值。 因此,這個表中的“distinct”指明總共出現多少個值,而“unique”則指明這些值中有多少只出現了一次。
使用“列分析”,可以深入了解前 1,000 行數據的列內的統計信息。 此列提供了若干個不同的值,包括行計數,這在驗證數據是否已成功導入時非常重要。 例如,如果原始數據庫有 100 行,則可以使用這一行計數來驗證是否存在 100 行,如果是,則表示已正確導入。 此外,這一行計數將顯示 Power BI 已視為離群值的行數、空行和字符串以及最小值和最大值,這將分別指示列中最小和最大值。 這種區別對于數字數據尤其重要,因為如果你的最大值超出了業務所定義的“最大值”,它將立即通知你。該值會引起你的注意,這意味著你可以在深入研究數據時集中精力。 如果數據位于文本列中(如上圖所示),在數據按字母順序排序時,最小值是第一個值,而最大值是最后一個值。
此外,“值分布”圖還會指示該特定列中每個非重復值的計數。 查看上圖中的圖時,可以注意到,值分布指示“Anthony Grosse”在“SalesPerson”列中出現的次數最多,“Lily Code”出現的次數最少。 此信息十分重要,因為它可以標識離群值。 如果某個值遠遠大于列中的其他值,通過“值分布”功能,可以確定開始調查出現此情況原因的位置。
在數值列上,“列統計信息”還將包含存在多少個零和 NULL 值,以及列中的平均值、列中值的標準偏差和列中偶數和奇數值的數量。 這些統計信息使你能夠了解數據在列中的分布情況,并且十分重要,因為它們會在列中匯總數據并充當確定離群值的起點。
例如,在查看發票數據時,你注意到“值分布”圖顯示“SalesPerson”列中的一些銷售人員在數據中出現的次數相同。 此外,你還注意到“Profit”列以及其他一些表中也出現了相同的情況。 在調查過程中,你會發現你使用的數據是錯誤的,需要刷新,因此你應立即進行刷新。 如果不查看此圖,你可能不會如此快速地看到此錯誤,因此,“值分布”是必不可少的功能。
在 Power Query 編輯器中完成你的編輯并且準備開始生成視覺對象后,請回到 Power Query 編輯器功能區上的“開始”。 選擇“關閉并應用”,這將使你回到 Power BI Desktop,還將應用任何列編輯/轉換。
現在你已確定了構成 Power BI 中的數據分析的元素,這包括在 Power BI 中加載數據、詢問列屬性以清楚了解列中數據的類型和格式并進行進一步編輯、發現數據異常,以及在 Power Query 編輯器中查看數據統計信息。 掌握這一知識后,你可以在你的工具包中包含能夠有效研究數據的功能。
使用高級編輯器修改 M 代碼
每次在 Power Query 中調整數據時,你會在 Power Query 過程中創建一個步驟。 可以在適當的位置對這些步驟進行重新排序、刪除和修改。 你所執行的每個清理步驟都可能是使用圖形界面創建的,但 Power Query 會在幕后使用 M 語言。 可以通過使用 Power Query 高級編輯器來讀取合并的步驟。 始終可以對 M 語言直接進行讀取和修改。? ? 你無需使用 M 代碼即可利用 Power Query。 盡管你幾乎不需要編寫 M 代碼,但它仍然可以證明是有用的。 由于 Power Query 中的每一步驟都是采用 M 代碼編寫的,因此,即使 UI 為你創建了它,但你可以使用這些步驟來了解 M 代碼并且對它進行自定義以滿足你的需求。
創建清理數據的步驟后,選擇 Power Query 的“視圖”功能區,然后選擇“高級編輯器”。
?
應顯示以下屏幕。
?
每一 Power Query 步驟大約將與一兩行 M 代碼一致。 你無需成為 M 代碼專家即可讀懂它。 你甚至可以通過更改它來進行試驗。 例如,如果需要更改數據庫的名稱,可以直接在代碼中完成,然后選擇“完成”。
你可能會注意到,M 代碼是自上而下編寫的。 此過程中后面的步驟可以通過等號左側的變量名稱來引用前面的步驟。 在對這些步驟進行重新排序時要謹慎,因為這可能會破壞語句依賴關系。 使用“in”語句寫入查詢公式步驟。 通常,最后一個查詢步驟用作 in final data set 結果。
歡迎留言討論~