Azureデータ分析入門 #6 【CSVデータ → Power BI サービス】

## はじめに
BI ツールはストレージやデータベース、DWH への接続が一般的ですが、まずは手元の CSV データで試してみたい、という方向けの記事です。

本連載のツール比較では、eコマースストアの売上データを用いて、

- 単価と配送料の合計に占める配送料の割合が低い
- 単価が高い
- 売上ボリュームが大きい

の条件を満たす製品カテゴリを選ぶための集計と可視化を行いました。

同じ課題設定のもと、ローカルPC上に保存されている CSV データ を**Power BI サービス** にインポートし、以下のダッシュボードを作成するまでの流れをご紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/e70c133a-bc7c-e491-214c-73d4f1201ba1.png)

ダッシュボードは[**こちら**](https://app.powerbi.com/view?r=eyJrIjoiOGFmOTM5NDEtNTZkMi00MmYxLWFmZDAtYzgzNWYxNjFlN2FlIiwidCI6IjYxNTc5NTU5LWNiM2EtNGZmYy1hOTVmLTkwNzYzMmJhNDRlOCJ9) で公開してます。

#### 連載目次
[Azureデータ分析入門 #1 【はじめに】](https://qiita.com/Catetin0310/items/a7ab83069fec5352b535)
[Azureデータ分析入門 #2 【ツール比較 Excel編】](https://qiita.com/Catetin0310/items/d32c53305ab579d47950)
[Azureデータ分析入門 #3 【ツール比較 Azure Notebook編】](https://qiita.com/Catetin0310/items/ae3c5f3dca5b3315896d)
[Azureデータ分析入門 #4 【ツール比較 Databricks編】](https://qiita.com/Catetin0310/items/b6030d3ad0fde16e57ab)
[Azureデータ分析入門 #5 【Databricks → Power BI Desktop】](https://qiita.com/Catetin0310/items/eb8431f38a51641b0db1)
[Azureデータ分析入門 #6 【CSVデータ → Power BI サービス】](https://qiita.com/Catetin0310/items/4af00df1f0af5feda1bb) → 今回の記事
Azureデータ分析入門 #7 【AutoML でタイタニック号の生存者予測】


## 作業環境
今回はブラウザ上で作業が完結可能な **Power BI サービス** でダッシュボードを作成します。Power BI の概要、および Power BI Desktop と Power BI サービスの違いについては [**前回の記事**](https://qiita.com/Catetin0310/items/eb8431f38a51641b0db1)をご参照ください。


## データのダウンロード/インポート
ツール比較で使用した3つのデータを結合加工したCSVデータを使用します。11万行程度のデータですので、散布図の描画はかなり重い処理になるはずですが、そのあたりはうまいことやってくれるオプションがありますので、今回はそのままデータを使用します。

[**こちら**](https://github.com/catetin/Databricks_Handson_Seminar/archive/master.zip)から zip ファイルをダウンロード、解凍しておきます。

[**Power BI サービス**](https://powerbi.microsoft.com/ja-jp/) にサインアップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/194f6f4a-bd82-870b-d5ae-d32f7c2f1f0a.png)

データの取得タブで、ファイルの取得をクリック
![2019-12-09_18h35_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/047cd454-68bf-ae44-c725-8c169e72c790.png)


ローカルファイルを選択し、ダウンロードしたファイルの中から、```table for Power BI.csv```を選択、インポートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/ad2178d5-ceef-1e84-91ec-b5e682f9b486.png)

データセットの...をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/b1627efa-b111-8cf8-b1ea-4cfc457b6b43.png)

完了するとこちらの画面に遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/a5bb2494-5105-26c9-db52-a7caf607e9e3.png)



## 各要素の作成
このダッシュボードは、以下5つの要素で構成されています。それぞれの作成手順を紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/80abfede-4fd8-a763-3923-a018f99e33d4.png)

#### カード
指定した列の合計や平均を出すことができます。目立たせたい数値を乗じさせるのにぴったりです。単価の合計、運賃の合計の2カテゴリそれぞれ作成。
![card.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/226c5a00-5c84-408b-64a8-71c2fb82713b.gif)


#### スライサー
指定列で条件の絞り込みができます。カテゴリごとの売上高ランキング、参照データ全体のカテゴリ別送料比率、販売月の3カテゴリで作成。
![slicer.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/e44bc63b-0810-3bda-531d-a600a8926525.gif)


#### テーブル
統計値の一覧表などを出しておくのに有用です。
![table.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/8568dcc6-41cb-f399-ff68-2d33b65d7c2f.gif)


#### ツリー図
カテゴリごとの売り上げ比率を可視化します。価格合計も表示しておきます。
![tree.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/9e6146d2-24f3-faf2-1830-4c1124d2e56a.gif)

#### 散布図
X軸に運賃、Y軸に単価に設定し、ここの売り上げデータが、カテゴリごとに色分けして表示される散布図を作成します。
![scatter.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/2d92e530-4dff-a9a0-3dfa-1aa14ac34003.gif)

今回作成した要素の中では、散布図が一番いじるポイントが多かったので補足解説します。
ペイントロールアイコンから、書式の変更やグラフの描画範囲を設定が可能です。
![2019-09-30_11h35_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/6dcede95-ece4-acff-320c-c53859241f6d.png)

ローデータのサンプル数が約11万で、一画面中の表示数としては多すぎます。このような場合は**高密度サンプリング**オプションをオンにすることで、描画時間の長さによる UX の低下を防ぐことができます。今回は表示されるサンプル数を 3500 個としています。
![2019-09-30_11h35_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/da070f46-f914-8610-5916-cd521cdc7ace.png)

要素が集中している箇所が表示されるように、X軸の表示範囲を以下のように設定してみました。
![2019-09-30_11h36_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/384a134a-a84b-ef77-ae4c-b611177818c9.png)

Y軸も同様。
![2019-09-30_11h37_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/0289572d-4d54-cba4-4084-e87820f2b15e.png)

データの傾向が見やすくなるように、図形のサイズを変更します。
![2019-09-30_11h37_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/ae630658-2c76-c062-4f71-cc16a425ef8c.png)

回帰直線を簡単に引くことができます。
![2019-09-30_11h38_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/11d53f0b-cc7f-eeb4-fc2f-a99e2f8bb194.png)


## 動かしてみる
要素の位置やデータラベルを調整してできた完成形がこちら。ほとんどマウスだけの処理でこのようなダッシュボードができます。すごい…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/e70c133a-bc7c-e491-214c-73d4f1201ba1.png)

以下の条件でスライサを絞り込みます

- 売上高がトップ10以内
- 送料の占める割合が12%以下
- 9月~12月の売上

![dashboard.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/a95304ed-78ac-0086-0a87-2de20b383da2.gif)

カテゴリごとの特徴もマウスオーバーの操作で簡単に確認できます。
![dashboard2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/1c09de7c-d81d-d3da-0403-5987df20f242.gif)


## まとめ
時系列データの可視化には Power BI Desktop が必要になってきますが、事前に集計ラベルが付与されているデータであれば、基本的にはエクセルのピボットグラフに似た操作感でグラフ化できます (レイアウトにこだわると時間が簡単に溶けてくので注意しましょう)

次回はデータ分析入門の最終回として、Azure AutoML を使って、タイタニック号の生存者予測をしてみます。お楽しみに！

## 参考サイト
[Power BI Desktop とは何ですか?](https://docs.microsoft.com/ja-jp/power-bi/desktop-what-is-desktop)