Python を使用して Power BI ビジュアルを作成する

このチュートリアルは、Power BI Desktop で Python データを使用したビジュアルの作成を開始する際に役立ちます。 Python、Pandas、および Matplotlib ライブラリを使用してビジュアル レポートを作成するために使用できる多くのオプションと機能のうちのいくつかを使用します。

前提条件

Power BI Desktop で Python スクリプトを実行して、以下を行います。

  • ローカル コンピューターに Python をインストールします。

  • Power BI Desktop で Python スクリプトを有効にします。

  • Pandas および Matplotlib 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 ビジュアル] アイコンを選択します。

    Screenshot that shows the Python option in Visualizations.

  2. 表示される [スクリプト ビジュアルを有効にする] ダイアログ ボックスで、[有効] を選択します。

    レポート キャンバスにプレースホルダーの Python ビジュアル イメージが表示され、中央ペインの下部に [Python スクリプト エディター] が表示されます。

    Screenshot that shows the Python script editor.

  3. AgeChildrenFnameGenderPetsState、および Weight フィールドを、[値] セクションの [ここにデータ フィールドを追加してください] と表示されている場所にドラッグします。

    Screenshot that shows Drag to Add data fields here.

    選択に基づいて、Python スクリプト エディターによって次のバインド コードが生成されます。

    • エディターによって、追加するフィールドを含む、データセット データフレームが作成されます。
    • 既定の集計は、[集計しない] です。
    • テーブルの視覚化と同様、フィールドはグループ化され、重複する行は 1 回だけ表示されます。
  4. 選択したフィールドによって自動的に生成されたデータフレームを使って、Python の既定デバイスにプロットすることになる Python スクリプトを書き込むことができます。 スクリプトが完了したら、[Python スクリプト エディター] のタイトル バーから [実行] アイコンを選択してスクリプトを実行し、ビジュアルを生成します。

    Screenshot that shows the Python script editor with initial comments.

ヒント

  • 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 スクリプト エディター] ペインが次の画像のように表示されます。

    Screenshot that shows the Python script editor with commands.

    このコードによって、Matplotlib ライブラリがインポートされ、ビジュアルがプロットおよび作成されます。

  2. [実行] スクリプト ボタンを選択して、Python ビジュアルで次の散布図を生成します。

    Screenshot that shows the scatter plot visualization generated from the Python script.

複数の列で線プロットを作成する

各人の子供とペットの数を示す折れ線グラフを作成します。

  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. [実行] ボタンを選択して、複数の列を含む次の折れ線グラフを生成します。

    Screenshot that shows a line plot with multiple columns from the Python script.

棒プロットを作成する

各人の年齢の棒グラフを作成します。

  1. [スクリプトのコードをここに貼り付けるか入力します] で、前のコードを削除またはコメント アウトし、次の Python コードを入力します。

    import matplotlib.pyplot as plt 
    dataset.plot(kind='bar',x='Fname',y='Age') 
    plt.show() 
    
  2. [実行] ボタンを選択して、次の棒グラフを生成します。

    Screenshot that shows a bar plot from the Python script.

制限事項

Power BI Desktop の Python ビジュアルには、以下の制限があります。

  • Python ビジュアルでプロット作成に使用するデータは、150,000 行に制限されています。 150,000 を超える行が選択されている場合は、上位の 150,000 行のみが使用され、メッセージがイメージに表示されます。 入力データにも 250 MB の制限があります。

  • Python ビジュアルの入力データセットに、32,766 文字を超える文字列値が含まれる列がある場合、その値は切り詰められます。

  • すべての Python ビジュアルは、72 DPI 解像度で表示されます。

  • Python ビジュアルの計算が 5 分を超えると、実行がタイムアウトになり、エラーが発生します。

  • 他の 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 の詳細については、以下を参照してください。