【Power BI】 Python ビジュアルの活用

はじめに

この記事では、Power BIのビジュアルの一つである「Pythonビジュアル」を使用して、Power BIのデフォルトでは作成できない図を作成したいと思います。

Power BIのビジュアルの中に「Py」のマークをしたビジュアルがあり、「何ができるのだろう」と思ったことはありませんか?
実は、Pythonでグラフが作成できるのです!

Power BIはデータを直感的に理解しやすい形で視覚化する強力なツールですが、Pythonビジュアルを利用することで、
その分析能力をさらに拡張できます。
これにより、よりデータの分析が行いやすくなると思います。

 

Power BIとは

Power BIはMicrosoftが提供するデータ可視化ツールです。

このプラットフォームを利用することで、ユーザーは大量のデータを簡単に取り込み、分析、共有、および視覚化することができます。
Power BIは、企業がデータに基づいて意思決定を行うのを支援し、ビジネスの洞察を得るために幅広く使用されています。

Power BIは直感的なインターフェースと豊富なデータ接続オプションを備えており、非技術者でも簡単にダッシュボードやレポートを作成できる点が魅力です。

主な特徴

  1. リアルタイムダッシュボード: データが更新されると、ダッシュボードの視覚化もリアルタイムで更新されます。

  2. レポーティング: ドラッグ&ドロップのインターフェースを使用して、複数のデータソースから簡単にカスタマイズ可能なレポートを作成できます。

  3. データ統合: Excel、SQL Server、SharePointなど、さまざまなデータソースからデータを取り込むことができます。

  4. 協力と共有: 作成したレポートやダッシュボードをオンラインで簡単に共有し、チームまたは組織全体でのコラボレーションを促進します。

 

ライセンス

  1. Power BI Free: 個人用のデスクトップアプリケーションで、無料で利用できます。

  2. Power BI Pro: 月額料金のサブスクリプションで、より高度な共有と協力機能が提供されます。

  3. Power BI Premium: 大規模組織向けで、専用の容量と性能を提供し、大規模なデータセットとユーザーの数をサポートします。

 

Pythonビジュアル

Pythonビジュアルは、Power BIにインポートしたデータをPythonコードを利用して図に起こすことができます。Pythonビジュアルを使用するメリットは以下の通りです。

  1. 高度な分析機能: Pythonの数多くのライブラリを活用して、統計解析、機械学習など、高度なデータ分析が可能になります。

  2. カスタムビジュアルの制作: Pythonを用いることで、標準のビジュアルでは表現できない独自のグラフやチャートを作成できます。

 

Pythonビジュアル実装

まず、Pythonビジュアルでの実装例をお見せいたします。

Power BIにデフォルトで搭載されていない箱ひげ図やヒートマップ、複数の散布図などPythonで実装できるデータ可視化を実装することができます。
では、それぞれの実装例をご説明します。

 

 

データインポートとPythonビジュアル作成準備

今回可視化するデータは、seabornライブラリが提供する「mpg」データセットを使用します。
このデータセットには、1970年代後半から1980年代初頭にかけての自動車の燃費(mpg)に関するデータが含まれています。

以下のURLからcsvファイルを取得しました。

URL: https://github.com/mwaskom/seaborn-data/blob/master/mpg.csv

 

データの説明は以下の通りです。

データ名

データの説明

mpg(燃費)

車両が1ガロンの燃料で走行できる距離(マイル)を示します。燃費が高いほど、燃料効率が良いとされます。

cylinders(シリンダー数)

エンジンのシリンダー数です。シリンダー数が多いほど、通常はパワーが増しますが、燃費は低下する傾向にあります。

displacement(排気量)

エンジンの排気量を立方インチで示します。排気量が大きいほど、一般にエンジンはパワフルですが、燃費は悪化します。

horsepower(馬力)

エンジンの出力を馬力で表します。馬力が高い車は高速で走ることが可能ですが、燃費にはネガティブな影響を与えることがあります。

weight(重量)

車両の重量をポンドで示します。重い車は加速性能が低下し、燃費も悪化する傾向にあります。

acceleration(加速性能)

車両が0から60マイル/時に達するのに必要な秒数です。加速性能が良い車は、より迅速に速度を上げることができます。

model_year(モデル年)

車両のモデル年を表します。年代が新しいほど、燃費の効率が向上していることが多いです。

origin(原産国)

車が製造された国を示します。データセットには主にアメリカ、ヨーロッパ、日本からの車が含まれています。

name(車名)

車のモデル名です。

 

上部メニューの「データを取得」からダウンロードしたcsvファイルをインポートします。
データに追加されていることを確認する。

 

Pythonビジュアルの選択

Pythonビジュアルを使用する準備は以下の通り。

 ①「Pythonビジュアル」を選択

 ②「値」に使用するデータを挿入する

 ③「Python スクリプトエディター」に②で選択したデータを可視化するためのPythonコードを記載する

これで準備完了です。あとはPythonコードを記載します。

 

箱ひげ図

箱ひげ図は、データの分布を視覚的に表現するためのグラフです。
この図を使うことで、データの中央値、四分位数、外れ値などを簡単に識別でき、データの散らばり具合を理解するのに役立ちます。

ソースコードは以下の通り。データは「model_year」と「mpg」を使用。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# データをモデル年でソート
dataset = dataset.sort_values('model_year')

# 箱ひげ図の描画
plt.figure(figsize=(12, 6))
sns.boxplot(x='model_year', y='mpg', data=dataset, color='cornflowerblue')
plt.title('MPG by Model Year')
plt.xlabel('Model Year')
plt.ylabel('MPG')
plt.grid(True)
plt.show()

ヒートマップ

ヒートマップは、データのマトリックスを色のグラデーションを用いて視覚的に表現する図です。
変数間の相関係数を色で示すためによく使用されます。
相関行列をヒートマップで表示することで、どの変数が強く相互に関連しているかが一目でわかります。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 相関係数の計算
corr = dataset.corr()

# ヒートマップの描画
plt.figure(figsize=(10, 8))
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('Heatmap of Correlation Coefficients')
plt.show()

散布図行列

散布図行列は、複数の量的変数間の関係を一度に可視化するためのツールです。
この行列は、データセット内の各変数のペアごとに散布図を作成し、それらをグリッド形式で並べて表示します。
多次元データの初期探索で有効であり、変数間の相関、パターン、異常値の検出などに役立ちます。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 対角線にはカーネル密度推定を表示
sns.pairplot(dataset[['mpg', 'cylinders', 'displacement', 'weight']], diag_kind='kde')

# プロットの表示
plt.show()

 

 

スライサーの実装

Power BIのスライサーを用いたフィルタリングをPythonビジュアルにも反映できます。
origin」データを用いて各原産国毎のデータを可視化できます。
それぞれのグラフで各原産国のデータとしてフィルタリングされたデータが可視化されてますね。

 

機械学習

Pythonで行えることは基本できますので可視化だけではなく機械学習を行うこともできます。

機械学習についての説明は割愛しますが、「horsepower」と「mpg」のデータを用いて簡単な非線形回帰分析を行い、フィッティングデータを赤線で記載してみました。
このような形で予測等も行えます。
しかし、予測データ(赤線)を可視化するのみであり予測データのピンポイントのデータ(例えばhorsepower90の時のmpgのデータ)をカードビジュアルに記載することはできません。

 

もちろん、スライサーでのフィルタリングも可能です。フィルタリングされたデータを学習します。

Pythonビジュアルの注意点

  • パフォーマンスの問題
     量のデータや複雑なスクリプトを扱う場合、Pythonビジュアルは計算に時間がかかり、デフォルトのビジュアルよりロードが長くなります。
     実際作成したレポートでもスライサーでフィルタリングしても反映まで数秒かかりました。

  • Python知識が必須
     Power BIはPower Platformのツールの一つであり、ノーコードローコードツールとなりますが、
     視覚的にレポートを作成しやすいという強みがなくなります。

  • Power BI サービスでの共有にはProもしくはPremiumライセンスが必要
     Power BIデスクトップでレポートを作成すること自体は無料ライセンスで作成可能ですが、
     Power BI サービスでレポートを共有するためにはProもしくはPremiumライセンスが必要になります。

 

最後に

    今回はPower BIのビジュアルの一つである「Pythonビジュアル」についてご紹介しました。
    デフォルトのビジュアルだけではどうしても作成できない図がある場合はPythonでコードを書いて作成することも可能となります。

    弊社はPower BIに限らず、Power Platformを用いたアプリ開発、様々なRPAツールを用いたRPAの導入、開発実績がございます。
    今回実施した「データの可視化」といったキーワードに興味がございましたら是非弊社にご相談ください!

    最後までご覧いただきありがとうございました。

     

    関連記事

     

    最新情報をお届けします!

    RPAに関する最新コラムやイベント情報をメールで配信中です。
    RPA領域でお仕事されている方に役立つナレッジになりますので、ぜび登録してください!

    最新情報を受け取る方はこちら

    もっと知りたい方はこちら


    ページトップ