本教學課程示範如何使用 SemPy (預覽版) 來計算 Power BI 語意模型中的量值。
在本教學課程中,您會了解如何:
- 使用語意連結程式庫 (SemPy) 的 Python 介面,以程式設計方式評估 Power BI 量值
- 了解有助於橋接 AI 和 BI 的 SemPy 元件:
- FabricDataFrame — 透過語意資訊增強的類似熊貓的結構
- 取得語意模型的函式,包括原始資料、組態和量值
必要條件
取得 Microsoft Fabric 訂用帳戶。 或註冊免費的 Microsoft Fabric 試用版。
登入 Microsoft Fabric。
使用首頁左下方的體驗切換器,切換至 Fabric。
在導覽窗格中,選取 [工作區],然後選取您的工作區以將其設定為目前的工作區。
下載 Retail Analysis 範例 PBIX.pbix 語意模型,並將它上傳至您的工作區。
在筆記本中跟著做
本教學課程會隨附 powerbi_measures_tutorial.ipynb 筆記本。
若要開啟本教學課程隨附的筆記本,請遵循 準備系統以用於數據科學教學的指示, 將筆記本匯入工作區。
如果您想要複製並貼上此頁面中的程式碼,則可以建立新的筆記本。
開始執行程式碼之前,請務必將 Lakehouse 連結至筆記本。
設定筆記型電腦
在本節中,您會設定筆記本環境。
在筆記本中使用內嵌代碼從
SemPyPyPI 安裝%pip。%pip install semantic-link-sempy匯入您稍後要使用的模組。
import sempy.fabric as fabric連線到 Power BI 工作區,並列出工作區中的語意模型。
fabric.list_datasets()載入語意模型。 在本教學課程中,您會使用 Retail Analysis 範例語意模型。
dataset = "Retail Analysis Sample"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]"])
此程式碼依Store[Chain]和Store[DistrictName]分組。
使用篩選條件評估量值
使用參數 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。 如果此用戶端的查詢失敗,請透過設定 use_xmla=True 將其切換至 Power BI XMLA 端點。 SemPy 參數與 XMLA 的測量計算相同。
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 教學: