分享方式:


使用 Python 來建立 Power BI 視覺效果

本教學課程可協助您開始在 Power BI Desktop 中使用 Python 資料來建立視覺效果。 您會運用 Python、pandas 和 Matplotlib 程式庫,使用於建立視覺報表的一些可用選項和功能。

必要條件

逐步進行在 Power BI Desktop 中執行 Python 指令碼,以:

  • 在本機電腦上安裝 Python

  • 在 Power BI Desktop 中啟用 Python 指令碼。

  • 安裝 pandasMatplotlib Python 程式庫。

  • 將下列 Python 指令碼匯入 Power BI Desktop:

    import pandas as pd 
    df = pd.DataFrame({ 
        'Fname':['Harry','Sally','Paul','Abe','June','Mike','Tom'], 
        'Age':[21,34,42,18,24,80,22], 
        'Weight': [180, 130, 200, 140, 176, 142, 210], 
        'Gender':['M','F','M','M','F','M','M'], 
        'State':['Washington','Oregon','California','Washington','Nevada','Texas','Nevada'],
        'Children':[4,1,2,3,0,2,0],
        'Pets':[3,2,2,5,0,1,5] 
    }) 
    print (df) 
    

在 Power BI Desktop 中建立 Python 視覺效果

  1. 匯入 Python 指令碼之後,在 Power BI Desktop [視覺效果] 窗格中選取 [Python 視覺效果] 圖示。

    顯示 [視覺效果] 中 [Python] 選項的螢幕擷取畫面。

  2. 在隨即顯示的 [啟用指令碼視覺效果] 對話方塊中,選取 [啟用]

    預留位置 Python 視覺效果影像會出現在報表畫布上,而 Python 指令碼編輯器會出現在中央窗格底部。

    顯示 Python 指令碼編輯器的螢幕擷取畫面。

  3. 年齡子女名字性別寵物體重欄位拖曳至 [值] 區段顯示 [於此處新增資料欄位] 的位置。

    顯示 [拖曳以在於此處新增資料欄位] 的螢幕擷取畫面。

    依據您選取的項目,[Python 指令碼編輯器] 會產生下列繫結程式碼。

    • 編輯器已建立 [資料集] 資料框架,其中有您所新增的欄位。
    • 預設彙總為 [不摘要]
    • 類似於資料表視覺效果,欄位會進行分組,且重複列只會出現一次。
  4. 由於資料框架是由您選取的欄位自動產生,因此您可以撰寫 Python 指令碼,進而繪製到 Python 預設裝置。 當指令碼完成時,請從 Python 指令碼編輯器標題列選取 [執行] 圖示,以執行指令碼並產生視覺效果。

    顯示 Python 指令碼編輯器與初始註解的螢幕擷取畫面。

提示

  • 您的 Python 指令碼只能使用新增至 [值] 區段的欄位。 您可以在 Python 指令碼上作業時新增或移除欄位。 Power BI Desktop 會自動偵測欄位變更。 從 [值] 區段選取或移除欄位時,Python 指令碼編輯器中的支援程式碼會隨之自動產生或移除。

  • 在某些情況下,您可能不想要自動分組,或您希望顯示所有的資料列 (包括重複項目在內)。 在這些情況下,您可以將索引欄位新增至資料集中,如此所有的資料列都會被視為唯一,且不會進行分組。

  • 您可以使用名稱來存取資料集中的資料行。 例如,您可以在 Python 指令碼中編寫 dataset["Age"],以存取 [Age] \(年齡\) 欄位。

  • 當您從 Python 指令碼編輯器標題列選取 [執行] 時,或每當因為資料重新整理、篩選或強調顯示而發生資料變更時,Power BI Desktop 會重繪視覺效果。

  • 執行 Python 指令碼並產生錯誤時,Python 視覺效果不會繪製,且畫布上會顯示錯誤訊息。 如需錯誤詳細資料,請選取訊息中的 [查看詳細資料]

  • 若要取得更大的視覺效果檢視,您可以將 [Python 指令碼編輯器] 最小化。

建立散佈圖

建立散佈圖,來查看年齡和體重之間是否有關聯性。

  1. Python 指令碼編輯器中,於 [在此貼上或鍵入您的指令碼] 底下,輸入此程式碼:

    import matplotlib.pyplot as plt 
    dataset.plot(kind='scatter', x='Age', y='Weight', color='red')
    plt.show() 
    

    您的 [Python 指令碼編輯器] 窗格現在看起來應該像下圖:

    顯示 Python 指令碼編輯器與命令的螢幕擷取畫面。

    程式碼會匯入 Matplotlib 程式庫,其會繪製並建立視覺效果。

  2. 選取 [執行] 按鈕,以在 Python 視覺效果中產生下列散佈圖。

    顯示從 Python 指令碼產生的散佈圖視覺效果的螢幕擷取畫面。

搭配多個資料行建立折線圖

為每個人建立折線圖,來顯示他們的子女及寵物的數目。

  1. 於 [在此貼上或鍵入您的指令碼] 底下,移除或註解化上述程式碼,然後輸入下列 Python 程式碼:

    import matplotlib.pyplot as plt 
    ax = plt.gca() 
    dataset.plot(kind='line',x='Fname',y='Children',ax=ax) 
    dataset.plot(kind='line',x='Fname',y='Pets', color='red', ax=ax) 
    plt.show() 
    
  2. 選取 [執行] 按鈕,以產生具有多個資料行的下列折線圖:

    顯示來自 Python 指令碼具有多個資料行折線圖的螢幕擷取畫面。

建立橫條圖

為每個人的年齡建立橫條圖。

  1. 於 [在此貼上或鍵入您的指令碼] 底下,移除或註解化上述程式碼,然後輸入下列 Python 程式碼:

    import matplotlib.pyplot as plt 
    dataset.plot(kind='bar',x='Fname',y='Age') 
    plt.show() 
    
  2. 選取 [執行] 按鈕以產生下列橫條圖:

    顯示來自 Python 指令碼的橫條圖的螢幕擷取畫面。

限制

Power BI Desktop 中的 Python 視覺效果有下列限制:

  • Python 視覺效果用於繪製的資料限制為 150,000 個資料列。 如果選取超過 150,000 個資料列,則只會使用前 150,000 個資料列,而且影像上會顯示訊息。 輸入資料也有 250 MB 的限制。

  • 如果 Python 視覺效果的輸入資料集有包含超過 32,766 個字元字串值的資料行,則會截斷該值。

  • 所有 Python 視覺效果都會以 72 DPI 解析度顯示。

  • 如果 Python 視覺效果計算超過五分鐘,執行時間會逾時並導致錯誤。

  • 如同其他 Power BI Desktop 視覺效果,如果選取來自不同資料表的資料欄位,而其之間沒有定義關聯性,即會發生錯誤。

  • Python 視覺效果會在資料更新、篩選及強調提示時進行重新整理。 影像本身不是互動式的。

  • Python 視覺效果會回應其他視覺效果中的強調顯示元素,但您無法選取 Python 視覺效果中的元素來交叉篩選其他元素。

  • 只有繪製到 Python 預設顯示裝置才會在畫布上正確顯示。 避免明確地使用不同的 Python 顯示裝置。

  • Python 視覺效果不支援重新命名輸入資料行。 在指令碼執行期間,會以依原始名稱來參考資料行。

安全性

Python 視覺效果會使用 Python 指令碼,其程式碼可能具有安全性或隱私權風險。 第一次嘗試檢視或與 Python 視覺效果互動時,會收到安全性警告。 只有在信任作者與來源,或已檢閱並了解 Python 指令碼之後,才啟用 Python 視覺效果。

授權

Python 視覺效果需要 Power BI Pro 或 Premium Per User (PPU) 授權,才能在報表、重新整理、篩選和交叉篩選中呈現。 免費版 Power BI 的使用者只能取用在 Premium 工作區中與其共用的磚。

下表根據授權描述 Python 視覺效果的功能。

在 Power BI Desktop 中撰寫 Python 視覺效果 使用 Python 視覺效果建立 Power BI 服務報表 在報表中檢視 Python 視覺效果
來賓 (Power BI Embedded) 支援 不支援 僅在 Premium/Azure 容量中支援
非受控租用戶 (未驗證網域) 支援 不支援 不支援
具有免費授權的受控租用戶 支援 不支援 僅在 Premium 容量中支援
具有 Pro 或 PPU 授權的受控租用戶 支援 支援 支援

如需 Power BI Pro 授權及其與免費版授權有何不同的詳細資訊,請參閱購買和指派 Power BI Pro 使用者授權

此教學課程只是稍微說明使用 Python、Pandas 及 Matplotlib 程式庫來建立視覺報表的許多選項及功能。 如需詳細資訊,請參閱以下資源:

如需在 Power BI 中使用 Python 的詳細資訊,請參閱: