共用方式為


從 Jupyter 筆記本擷取和計算 Power BI 量值

本教學課程示範如何使用 SemPy (預覽版) 來計算 Power BI 語意模型中的量值。

在本教學課程中,您會了解如何:

  • 使用語意連結程式庫 (SemPy) 的 Python 介面,以程式設計方式評估 Power BI 量值
  • 了解有助於橋接 AI 和 BI 的 SemPy 元件:
    • FabricDataFrame — 透過語意資訊增強的類似熊貓的結構
    • 取得語意模型的函式,包括原始資料、組態和量值

必要條件

  • 在導覽窗格中,選取 [工作區],然後選取您的工作區以將其設定為目前的工作區。

  • 下載 Retail Analysis 範例 PBIX.pbix 語意模型,並將它上傳至您的工作區。

在筆記本中跟著做

本教學課程會隨附 powerbi_measures_tutorial.ipynb 筆記本。

設定筆記型電腦

在本節中,您會設定筆記本環境。

  1. 在筆記本中使用內嵌代碼從SemPy PyPI 安裝%pip

    %pip install semantic-link-sempy
    
  2. 匯入您稍後要使用的模組。

    import sempy.fabric as fabric
    
  3. 連線到 Power BI 工作區,並列出工作區中的語意模型。

    fabric.list_datasets()
    
  4. 載入語意模型。 在本教學課程中,您會使用 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 教學: