教學課程:從 Jupyter Notebook 擷取和計算 Power BI 量值
本教學課程說明如何使用 SemPy(預覽)來計算語意模型中的量值(Power BI 數據集)。
在本教學課程中,您會了解如何:
- 透過語意連結 Python 連結庫 (SemPy) 的 Python 介面,以程式設計方式評估 Power BI 量值。
- 熟悉 SemPy 的元件,有助於彌合 AI 與 BI 之間的差距。 這些元件包括:
- FabricDataFrame - 使用其他語意信息增強的 pandas 類似結構。
- 可讓您擷取語意模型的實用函式,包括原始數據、組態和量值。
必要條件
取得 Microsoft Fabric 訂用帳戶。 或者,註冊免費的 Microsoft Fabric 試用版。
登入 Microsoft Fabric。
使用首頁左側的體驗切換器,切換至 Synapse 資料科學 體驗。
從左側瀏覽窗格中選取 [工作區 ],以尋找並選取您的工作區。 此工作區會變成您目前的工作區。
下載零售分析範例 PBIX.pbix 語意模型,並將其上傳至您的工作區。
在筆記本中跟著
powerbi_measures_tutorial.ipynb 筆記本會伴隨本教學課程。
若要開啟本教學課程隨附的筆記本,請遵循準備系統以進行數據科學教學課程中的指示,將筆記本匯入您的工作區。
如果您想要複製並貼上此頁面中的程式碼,您可以 建立新的筆記本。
開始執行程序代碼之前,請務必將 Lakehouse 附加至筆記本 。
設定筆記本
在本節中,您會使用必要的模組和數據來設定筆記本環境。
使用
%pip
筆記本內的內嵌安裝功能從 PyPI 安裝SemPy
:%pip install semantic-link
執行稍後所需模組的必要匯入:
import sempy.fabric as fabric
您可以連線到 Power BI 工作區。 列出工作區中的語意模型:
fabric.list_datasets()
載入語意模型。 在本教學課程中,您會使用 零售分析範例 PBIX 語意模型:
dataset = "Retail Analysis Sample PBIX"
列出工作區量值
使用 SemPy 的 函式列出語意模型中的 list_measures
量值,如下所示:
fabric.list_measures(dataset)
評估量值
在本節中,您會使用 SemPy 的 函式,以各種方式評估量值 evaluate_measure
。
評估原始量值
在下列程式代碼中,使用 SemPy 的 函 evaluate_measure
式來計算稱為「平均銷售區域大小」的預先設定量值。 您可以在上一個儲存格的輸出中看到此量值的基礎公式。
fabric.evaluate_measure(dataset, measure="Average Selling Area Size")
使用評估量值 groupby_columns
您可以藉由提供額外的參數 groupby_columns
,依特定資料列分組量值輸出:
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
在上一個程式代碼中,您會依語意模型中的數據Chain
行和DistrictName
Store
數據表分組。
使用篩選評估量值
您也可以使用 filters
參數來指定結果可以針對特定資料列包含的特定值:
fabric.evaluate_measure(dataset, \
measure="Total Units Last Year", \
groupby_columns=["Store[Territory]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})
在上一個程式代碼中, Store
是數據表的名稱、 Territory
是數據行的名稱,而且 PA
是篩選允許的其中一個值。
評估多個數據表的量值
您可以依跨越語意模型中多個數據表的數據行來分組量值。
fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])
評估多個量值
evaluate_measure
函式可讓您提供多個量值的識別碼,並輸出相同 DataFrame 中的匯出值:
fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])
使用 Power BI XMLA 連接器
默認語意模型用戶端是由Power BI的REST API所支援。 如果使用此用戶端執行查詢時發生任何問題,可以使用 將後端切換至 Power BI 的 XMLA 介面 use_xmla=True
。 使用 XMLA 進行量值計算時,SemPy 參數會維持不變。
fabric.evaluate_measure(dataset, \
measure=["Average Selling Area Size", "Total Stores"], \
groupby_columns=["Store[Chain]", "Store[DistrictName]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]}, \
use_xmla=True)
相關內容
查看語意連結 /SemPy 的其他教學課程:
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應