微軟PowerBI考試 PL300-在 Power BI 中清理、轉換和加載數據

微軟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 編輯器僅對數據的特定視圖進行更改,因此,你無需擔心會對原始數據源造成任何更改。 可以在屏幕右側的“查詢設置”窗格中查看你的步驟列表以及查詢的屬性。

Power Query 編輯器功能區包含許多可用于選擇、查看和調整數據的按鈕。
圖片
識別列標頭和名稱 對初始數據進行調整的第一步是標識數據內的列標頭和名稱,然后評估它們所在的位置以確保它們位于正確的位置。

在下面的屏幕截圖中,SalesTarget(一個未提供的示例)的 csv 文件中的源數據有一個按產品分類的目標,以及按月份拆分的一個子類別,這兩者都被整理成了列。
?

原始 Excel 數據

然而,你會注意到數據沒有按預期導入。
?

識別列標頭和名稱

這使數據難以閱讀。 在數據處于當前狀態時會發生問題,因為列標頭位于不同的行中(標記為紅色),并且若干列有未描述的名稱,例如“Column1”和“Column2”等。

在識別了列標頭和名稱所在的位置后,可以進行更改以重新整理數據。

提升標頭

當表在 Power BI Desktop 中創建后,Power Query 編輯器會假設所有數據都屬于表行。 但是,數據源的第一行可能會包含列名稱,這是之前 SalesTarget 示例中發生的情況。 若要更正此誤差,需要將第一個表行提升為列標頭。

可以通過兩種方式提升標頭:在“開始”選項卡上選擇“將第一行用作標頭”選項,或選擇“Column1”旁邊的下拉菜單按鈕,然后選擇“將第一行用作標頭”。
?

將第一行用作標頭的不同選項

下圖說明了“將第一行用作標頭”功能會對數據造成哪些影響:

“將第一行用作標頭”結果

重命名列

調整數據的下一步是檢查列標頭。 你可能會發現,一列或多列的標頭錯誤、標頭拼寫錯誤,或者標頭命名約定不一致或對用戶不友好。

請參閱前面的屏幕截圖,上面顯示了“將第一行用作標頭”功能的影響。 請注意,包含子類別“Name”數據的列現在的標頭變成了“Month”。 此列標頭不正確,因此需要對它進行重命名。

可以通過兩種方式對列標頭進行重命名。 一種方法是右鍵單擊標頭,選擇“重命名”,編輯名稱,然后按 Enter。 或者,可以雙擊列標頭,然后使用正確的名稱覆蓋該名稱。

還可以通過以下方法解決此問題:刪除(跳過)前兩行,然后將列重命名為正確名稱。

刪除前幾行?

在調整數據時,可能需要刪除前幾行,例如,當這些行為空白或者包含報表中不需要的數據時。

繼續使用 SalesTarget 示例時,可以注意到,第一行為空白(沒有數據),第二行的數據已不再需要。?

刪除前幾行

若要刪除這些多余的行,請在“開始”選項卡上選擇“刪除行”>“刪除前幾行”。

“刪除前幾行”功能

刪除列

數據調整過程中的一個關鍵步驟是刪除不必要的列。 越早刪除這些列越好。 刪除列的一種方式是在從數據源獲取數據時限制列。 例如,如果使用 SQL 從關系數據庫中提取數據,則需要在 SELECT 語句中使用列列表對提取的列進行限制。

在此過程的早期階段刪除列(而不是之后再進行刪除)是最好的,特別是在表之間建立了關系的情況下。 刪除不必要的列將有助于你專注于所需的數據,并有助于改進 Power BI Desktop 語義模型和報表的整體性能。

檢查每一列,并詢問自己是否真的需要里面所含的數據。 如果不打算在報表中使用這些數據,那么這些列對你的數據模型而言沒有任何價值。 因此,應該刪除這些列。 如果你的需求隨著時間改變了,你之后可以隨時添加這些列。

可以通過兩種方式刪除列。 第一種方法是選擇要刪除的列,然后在“開始”選項卡上選擇“刪除列”。
?

“刪除列”功能

或者,可以選擇要保留的列,然后在“開始”選項卡上選擇“刪除列”>“刪除其他列”。

“刪除其他列”功能

逆透視列

逆透視是 Power BI 一項有用的功能。 此功能可用于任意數據源中的數據,但你通常會在從 Excel 導入數據時使用此功能。 下面的示例顯示了包含銷售數據的示例 Excel 文檔。
?

需要逆透視的 Excel 數據

盡管數據最初可能是有意義的,但難以通過這些數據創建從 2018 年到 2019 年合并的所有銷售總額。 你的目標是通過三列在 Power BI 中使用這些數據:Month、Year 和 SalesAmount。

將數據導入到 Power Query 中時,它將類似下圖所示。
?

原始 Power Query 數據

接著,將第一列重命名為 Month。 此列未被正確標記,因為在 Excel 中,該標頭標記的是 2018 和 2019 列。 突出顯示 2018 和 2019 列,在 Power Query 中選擇“轉換”,然后選擇“逆透視”。

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 編輯器中的“替換值”功能


在“要查找的值”框中,輸入想要替換的值的名稱,接著在“替換為”框中,輸入正確的值名稱,然后選擇“確定”。 在 Power Query 中,你無法像在 Excel 中一樣選擇一個單元格和更改一個值。

在“要查找的值”框中使用另一值替換一個值

可以在“查詢設置”窗格中查看對數據進行重建格式和更正所采取的步驟列表。 完成需要進行的所有步驟后,可以選擇“關閉并應用”關閉 Power Query 編輯器,將更改應用到數據模型。 不過,可以采取進一步操作來清理和轉換數據。

替換 NULL 值

?有時,你可能會發現數據源包含 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 錯誤地將列數據類型設置成了文本。 若要對此列進行報告,需要將數據類型從文本更改為日期。

設置為文本的列 OrderDate 數據類型

不正確的數據類型可能造成的影響

以下信息使你能夠深入了解 Power BI 未檢測到正確數據類型時可引發的問題。

不正確的數據類型將阻止你創建某些計算、派生層次結構或創建與其他表的正確關系。 例如,如果嘗試要計算 Quantity of Orders YTD,你將遇到以下錯誤,指出 OrderDate 列數據類型不是進行基于時間的計算所需的日期。

Quantity?of?Orders?YTD?=?TOTALYTD(SUM('Sales'[OrderQty]),?'Sales'[OrderDate])

基于時間的計算度量值的錯誤

對日期字段應用不正確的數據類型引發的另一個問題是,無法創建日期層次結構,此層次結構便于按年、月或周來分析數據。 以下屏幕截圖顯示了 SalesDate 字段未被識別為日期類型,且將僅作為表視覺對象中的日期列表顯示。 但是,最佳做法是使用日期表并關閉自動日期/時間來移除自動生成的層次結構。?

添加 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 Query 編輯器中選擇表的屏幕截圖

但是,這些數據來自多個表,因此,這一困境確定了你如何合并這多個表中的數據并創建一個真實數據來源表以從中創建報表。 利用 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 編輯器中將查詢追加為新查詢

在添加了要追加的表后,請選擇“確定”。 你將被路由到一個新查詢,其中包含所有三個表中的所有行,如下圖所示。
?

追加為新查詢的最終結果

現在,你已成功創建了包含員工、供應商和客戶信息的一個主表。 你可以退出 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 的“視圖”功能區,然后選擇“高級編輯器”。
?

“視圖”功能區,高級編輯器按鈕

應顯示以下屏幕。
?

高級編輯器中的 M 語言

每一 Power Query 步驟大約將與一兩行 M 代碼一致。 你無需成為 M 代碼專家即可讀懂它。 你甚至可以通過更改它來進行試驗。 例如,如果需要更改數據庫的名稱,可以直接在代碼中完成,然后選擇“完成”。

你可能會注意到,M 代碼是自上而下編寫的。 此過程中后面的步驟可以通過等號左側的變量名稱來引用前面的步驟。 在對這些步驟進行重新排序時要謹慎,因為這可能會破壞語句依賴關系。 使用“in”語句寫入查詢公式步驟。 通常,最后一個查詢步驟用作 in final data set 結果。

歡迎留言討論~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86574.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PostgreSQL 安裝與配置全指南(適用于 Windows、macOS 與主流 Linux 發行版)

PostgreSQL 是一個功能強大、開源、穩定的對象關系數據庫系統,廣泛用于后端開發、數據處理與分布式架構中。本指南將手把手教你如何在 Windows、macOS 以及主流 Linux 發行版 上安裝 PostgreSQL,并附上安裝驗證命令與基礎配置方法。 一、Windows 安裝與配…

WordPress博客文章SEO的優化技巧

在數字時代,博客不僅用于表達觀點,也能提升品牌影響力并吸引潛在客戶。許多服務器提供商(如 Hostease)支持 WordPress 一鍵安裝功能,方便新手快速完成安裝,專注于內容創作和 SEO 優化。然而,寫出…

Python:操作 Excel 折疊

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】 Python 操作 Excel 系列 讀取單元格數據按行寫入設置行高和列寬自動調整行高和列寬水平…

雨季智慧交通:從車輛盲區到客流統計的算法全覆蓋

雨季智慧交通中的視覺分析技術應用 一、背景:雨季交通的復雜挑戰 雨季是城市交通管理的關鍵考驗期。以濟南為例,強對流天氣伴隨的短時強降水、雷雨大風及冰雹,不僅導致道路積水、能見度驟降,還加劇了大型車輛(如渣土…

安全生產管理是什么?安全生產管理系統都有哪些核心功能?

隨著法律法規的日益嚴格和公眾對安全意識的提升,企業面臨的安全生產壓力也越來越大。無論是大型企業還是中小型企業,安全生產管理不僅關系到企業的生存與發展,更直接關系到員工的生命安全和企業的社會形象。因此,理解并實施有效的…

【PyCharm必會基礎】正確移除解釋器及虛擬環境(以 Poetry 為例 )

#工作記錄 【PyCharm使用基礎】 當遇到虛擬環境難以修復的場景,我們需要刪除當前解釋器和虛擬環境然后再重新創建虛擬環境,以下是在PyCharm中正確移除的步驟。 一、進入解釋器設置 在 PyCharm 界面右下角,點擊Poetry (suna0),選…

day028-Shell自動化編程-判斷進階

文章目錄 1. 特殊變量補充2. 變量擴展-變量子串2.1 獲取變量字符的長度2.2 給變量設置默認值 3. 命令3.1 dirname3.2 basename3.3 cut 4. 條件測試命令:[]4.1 邏輯運算符4.2 文件測試4.3 案例:書寫腳本-檢查文件類型4.4 邏輯運算4.5 案例:書寫…

oracle sql 語句 優化方法

1、表盡量使用別名,字段盡量使用別名.字段名,這樣子,可以減少oracle數據庫解析字段名。而且把 不需要的字段名剔除掉,只保留有用的字段名,不要一直使用 select *。 2、關聯查詢時,選擇好主表 。oracle解析…

【Java】Ajax 技術詳解

文章目錄 1. Filter 過濾器1.1 Filter 概述1.2 Filter 快速入門開發步驟:1.3 Filter 執行流程1.4 Filter 攔截路徑配置1.5 過濾器鏈2. Listener 監聽器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技術3.1 Ajax 概述3.2 Ajax 快速入門服務端實現:客戶端實現:4. Axi…

07 APP 自動化- appium+pytest+allure框架封裝

文章目錄 一、PO二、代碼簡單實現項目框架預覽:base_page.pydir_config.pyget_data.pylogger.pystart_session.pyconfig.yamlkey_code.yamllaunch_page_loc.pylogin_page_loc.pylaunch_page.pylogin_page.pytest_login.pypytest.inirun.py APP 自動化代碼總和 一、P…

用戶體驗升級:表單失焦調用接口驗證,錯誤信息即時可視化

現代前端應用中,表單交互是用戶體驗的重要組成部分。而表單驗證作為其中的核心環節,不僅需要前端的即時反饋,還需要與后端接口聯動進行數據合法性校驗。本文將詳細介紹如何在Vue3中實現表單輸入與接口驗證的無縫聯動,并優雅地展示…

Vue 插槽(Slot)用法詳解

插槽(Slot)是Vue中一種強大的內容分發機制,它允許你在組件中定義可替換的內容區域,為組件提供了更高的靈活性和可復用性。本文將全面介紹Vue插槽的各種用法。 1. 基本插槽 基本插槽是最簡單的插槽形式,它允許父組件向子組件插入內容。 子組…

C++ 標準模板庫(STL)詳解文檔

C 標準模板庫(STL)詳解文檔 1 前言2 常用容器2.1 內容總覽2.2 向量 vector2.2.1 概述2.2.2 常用方法2.2.3 適用場景2.2.4 注意事項 2.3 棧 stack2.3.1 概述2.3.2 常用方法2.3.3 注意事項 2.4 隊列 queue2.4.1 概述2.4.2 常用方法2.4.3 注意事項 2.5 優先…

【入坑系列】TiDB 強制索引在不同庫下不生效問題

文章目錄 背景SQL 優化情況線上SQL運行情況分析懷疑1:執行計劃綁定問題?嘗試:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 寫法Hint 不生效問題排查解決參考背景 項目中使用 TiDB 數據庫,并對 SQL 進行優化了,添加了強制索引。 UAT 環境已經生效,但 PROD 環境強制索…

Redis(02)Win系統如何將Redis配置為開機自啟的服務

一、引言 Redis 是一款高性能的鍵值對存儲數據庫,在眾多項目中被廣泛應用。在 Windows 環境下,為了讓 Redis 能更穩定、便捷地運行,將其設置為系統服務并實現自動啟動是很有必要的。這樣一來,系統開機時 Redis 可自動加載&#xf…

apex新版貌似移除了amp從源碼安裝方式裝的話會在from apex import amp時報錯

問題: 安裝完apex結果 from apex import amp會報錯 解決方法: # apex git clone https://github.com/NVIDIA/apex cd apex # https://github.com/modelscope/ms-swift/issues/4176 git checkout e13873debc4699d39c6861074b9a3b2a02327f92 pip insta…

掌握 HTTP 請求:理解 cURL GET 語法

cURL 是一個強大的命令行工具,用于發送 HTTP 請求和與 Web 服務器交互。在 Web 開發和測試中,cURL 經常用于發送 GET 請求來獲取服務器資源。本文將詳細介紹 cURL GET 請求的語法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的縮寫…

【AI學習】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一種將現實世界中的數據(如圖像、文本、音頻等)轉化為計算機可處理的數值型特征表示的工具。它是連接人類認知(如語義、視覺特征)與…

基于算法競賽的c++編程(28)結構體的進階應用

結構體的嵌套與復雜數據組織 在C中,結構體可以嵌套使用,形成更復雜的數據結構。例如,可以通過嵌套結構體描述多層級數據關系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…

leetcode題解450:刪除BST中的結點!調整二叉樹的結構最難!

一、題目內容 題目要求刪除二叉搜索樹(BST)中值為 key 的節點,并保證刪除后二叉搜索樹的性質不變。返回刪除節點后的二叉搜索樹的根節點的引用。一般來說,刪除節點可分為兩個步驟:首先找到需要刪除的節點;如…