見出し画像

【実践編】集計からダッシュボードの作成まで1本化!PythonとDashによるデータ可視化アプリ開発

はじめに

マーケティングリサーチプラットフォームを提供している株式会社マーケティングアプリケーションズです。

弊社では、キリンビール様から発売中の本麒麟がなぜヒットしているのか、その要因を探るため、アンケートでデータ収集→Pythonで集計→Dashでダッシュボードの作成を行い、データを可視化するWebアプリ開発に挑戦しました。

そして、そのDashに関する内容を、基礎編Tips編実践編(本記事)の3つの記事に分けて投稿し、そのノウハウを全て無料で公開しています。

実践編となる今回は、本麒麟のヒット分析を行うにあたり、Dashを用いてどのようにダッシュボードを作成したか、Tips編の内容を組み合わせた実践的な手法をご紹介します。

なお、YouTubeでは授業形式の解説動画を公開中なので、本記事と合わせてご視聴頂けたら嬉しいです(本記事は、動画内で話している内容を箇条書きしたものになっています)。

この記事を読んで良かった・参考になったという方は、ぜひスキ❤️ボタンお待ちしております!

↓解説動画はこちら!

実践編


早速解説を始めます。今回はバブルチャートの作成方法を例に説明していきます。

スクリーンショット 2020-11-19 14.10.02


Jupyter Notebookで集計をする、関数を作る

↓動画はこちら(画像クリックでご視聴頂けます。)

スクリーンショット 2020-11-20 7.33.15

- 関数とは?モジュールとは?
- Anaconda Navigatorを立ち上げる
- Anaconda Navigatorで仮想環境「dash」を立ち上げる
- Jupyter Notebookを立ち上げる
- 必要なデータとノートブックを用意する
- ノートブックのセル内に集計用の関数を1つ1つ用意する
 (今回の場合、バブルチャートのX軸・Y軸・バブルサイズ・ラベル用のテキスト・それらの関数をまとめる関数を作成)

関数の作り方にも礼儀あり?良くない例を見てみよう

↓動画はこちら(画像クリックでご視聴頂けます。)

スクリーンショット 2020-11-20 7.34.00


※動画内では、関数化した状態で説明しています。集計を行った後に関数を作るようにしてください。また、集計を行う際は、違うツールで同じ集計方法を実施し値の確認をして、同じ値になることを確認した方が良いと思います。

例)バブルチャートだとクロス集計を実施→エクセルでも同じようにクロス集計を実施して値を確認する

モジュールを作る

↓動画はこちら(画像クリックでご視聴頂けます。)

スクリーンショット 2020-11-20 7.34.41


- ディレクトリを用意する
- 必要なデータを用意する
- アプリを表示させるためのファイル「app.py」と関数をまとめたファイル(モジュール)「data_processing.py」を用意する
- data_processing.pyを開いて、中身を確認する

「app.py」では、まず最初に必要とするグラフのコードを入れておいて、準備をしておきます。
次に「data_processing.py」のファイルを作成します。
「data_processing.py」にJupyter Notebookで値の確認が終わり、正常に動くことが確認できた関数をコピペします。

モジュールを読み込ませて使う

↓動画はこちら(画像クリックでご視聴頂けます。)

スクリーンショット 2020-11-20 7.38.47


- 「app.py」を開く
- importで「data_processing.py」を読み込み
- 作成した関数から、それぞれの値を呼び出してそれぞれの変数に代入する
- 作成した変数を、今後はグラフを作成するために使用する

go.Scatterは散布図を作成する
go.ScatterのxはX軸を作成するので、X軸の値が入った変数x_axis_listを代入、yはY軸を作成するので、Y軸の値が入った変数y_axis_listを代入

python:app.py
x_axis_list = dp.gender_age_bubble_chart()['x_axis_list']
y_axis_list = dp.gender_age_bubble_chart()['y_axis_list']
bubble_size_list = dp.gender_age_bubble_chart()['bubble_size_list']
text_list = dp.gender_age_bubble_chart()['text_list']
gender_and_age_distribution = go.Figure()
gender_and_age_distribution_data = go.Scatter(
   x=x_axis_list, y=y_axis_list,
)

- ローカルサーバーを起動して、アプリを表示する

アプリを表示して、グラフを見てみよう

↓動画はこちら(画像クリックでご視聴頂けます。)

スクリーンショット 2020-11-20 7.34.58

- 全ての工程が終わり、表示されていることを確認する
(動画内ではバブルチャートの説明を行っています)

最後に

Dashの解説を全3回に渡りお届けしましたが、いかがでしたでしょうか?
Pythonで自作ダッシュボードを作る際の助けになりましたら幸いです。

そして、内容をしっかり理解するためにも記事と合わせて動画をご活用ください!

他にもYouTubeで動画公開中!

テック系シリーズ

スクリーンショット 2020-11-20 8.12.24

統計シリーズ/多変量解析

スクリーンショット 2020-11-20 8.13.22

対談シリーズ

スクリーンショット 2020-11-20 8.15.14

明日話せるマーケティング小ネタシリーズ

画像12

その他弊社情報

アンケート配信ツール【Surveroid】サービスサイトはこちら
https://www.surveroid.jp/?utm_source=...

MApps チャンネル公式ツイッターで最新情報を入手!
https://twitter.com/MApps_ch

調査依頼はこちらのフォームよりお申し込み頂けます
https://mkt-apps.com/inquiry/

この記事が気に入ったらサポートをしてみませんか?