みなさんごきげんよう。Snafkinです。

 

今回はPythonを使ってData visualizationをやります。

Excelでいいじゃん。

 

その通りです。ExcelだろうがPythonだろうが、データが同じであれば見える化される表やグラフも同じです。違いは機械学習に進んだ時、見えてきます。機械学習のステップに進んだ時、基礎でつまずかないために、今のうちにマスターしておきましょう。

 

まずは、前回作ったExcelをDLしてください。

次に、Python編1で使ったGoogle Colabを開いていただきます。

 

こんな画面になってますか?

 

画像1

 

 

今回は、私の方で全部コードを用意しておきましたが、手を動かしながら覚えたい方は、画面左上のファイルから新しいBookを開いてください。

 

 

画像2

 

 

では1つ1つコードを走らせます。まず1つ目のブロック。

 

 

画像3

 

 

この「import」群は、Pythonにさまざまなツールを読み込んでいます。Pyhonを皆さんのパソコンと捉えるならば、エクセル、ワード、パワポなんかをDLしインストールして初めて使い物になりますよね?

 

それと同じです。Pythonも新しいプロジェクトごとにInstallしたり、DLしたりします。

 

さて、このコードの左斜め上再生ボタンを押していただくと、このコードが走り出します。押してみてください。コードの下にこんな選択肢が出てくるはずです。「Choose Files」をクリックし、先程D Lした前回までのエクセルを選択ください。

 

画像4

 

 

すると、こんな画面に切り替わります。これで、ExcelデータをPythonに読み込むことに成功しました。

 

 

画像5

 

 

次のコードブロックも一緒に見てみます。全部アルファベットで書いてあるので、ややこしいですが、Excelファイルの名前(Python編2_Datav Visualization.csv)が、Python上でもそのまま引き継がれます。

 

毎回これだけ長い名前を打つのが大変なので、このファイル名をfile_name変数に埋め込みます。数学で x に何かを代入するのと全く同じです。

 

2行目のdf =... から始まるコードは、Python上にこのエクセルを編集可能な形で読み込め、と指示していると考えていただければと思います。再生ボタンを押してください。

 

 

画像6

 

 

一覧表が出てきましたか?なりましたか?次です、前回はこんなダッシュボードを作りました。これをPython上でやってみます。

 

 

画像8

 

 

Google Colabで次のコードブロックを見てみてください。何やらたくさん書いてありますね。コードの詳細は一旦後回しにしまましょう。

 

 

画像10

 

 

ここで体感してもらいたいのは、Excelではほんの少しの作業で作れる基礎的なグラフも、Pythonで作ろうとすると思った以上の労力がかかる、ということです。今回のポイントの一つ目です。

 

 

さて、このコードブロックを走らせてみましょう。再生ボタンです。

 

 

画像9

 

 

50点くらいの仕上がりのダッシュボードができましたね。Pythonでやったからといって別に綺麗なわけでもない。取り越し苦労なのか。そんなことはありません。次のポイントが重要だからです。次のコードブロックを見てください。

 

 

画像10

 

 

先程走らせたコードとほぼ同じですね。唯一の違いは、1行目objに代入した列の名前だけです。先程は、売り上げを対象にダッシュボードを作りましたが、新たなコードは、商品数を対象としています。

 

 

画像11

 

 

商品数を対象としたダッシュボードができました。またもや50点の出来栄えですが、1箇所変えるだけで新しいダッシュボードが数秒でできるわけですから、Pythonでやるメリットが少し感じられたのではないでしょうか。

 

 

最後にもう1つだけ、一番下のコードブロックを見てください。

 

 

画像12

 

 

1行目の def dashboard_sample(obj, cl): 以外今しがた走らせたコードと何一つ変わりません。プログラミングっぽくなってきましたね。

 

 

これは、グラフを作る一連の作業を、次回以降、dashboard_sampleの括弧内(obj, cl)に列名を入れだけでグラフが作成されるようにしたものです。ExcelのSum(xx)関数のもっと便利なやつを作ったみたいなものです。

このコードブロックの下に、実験用のコードも残してありますので、実際に走らせてみてください。

 

 

画像13

 

 

いかがでしょう。全く同じダッシュボードがいとも簡単に出来上がりました。今はしらせたコードはわざわざ obj やcl に代入せずとも、直接dashboard_sample()に打ち込んでも構いません。

 

 

画像14

 

ではまた!

みなさんごきげんよう。Snafkinです。

 

今回も引き続き、Data visualizationをやります。パッと見せられる表やグラフを作ります。素早くストレスなく作れるようになるべく、まずはプロセスに拘りますね。

 

ではまず、前回作ったエクセルを開いてください。

 

「ダッシュボード」タブに、スーパーの売り上げ合計、38565が表示されているかと思います。今回はすぐに、作業に移ります(前回のおさらいが必要な方はこちらご参照)。

 

  • 38565があるセル(上記リンクからDLした場合は、C4)をクリック
  • F2ボタン (もしくはダブルクリックで数式編集)
  • Ctr+Shift+矢印上↑
  • Ctr+C
  • Esc
  • 矢印下↓
  • F2ボタン(もしくはダブルクリックで数式編集)
  • Ctr+V
  • 数式内SumをAverageへ変更
  • Enter

これで数式の参照範囲を変えずに平均値を出せます。

 

同じプロセスで一つ下のセル(C6)に、Averageから、stdevに変更してみてください。瞬く間に、過去11日間の合計、平均、標準偏差(ばらつき)が算出できました。

 

このまま、E4に「男性」E5に「女性」とベタ打ちしてください。

 

  • F4セルに =SUMIF(メイン!D2:D32,ダッシュボード!E4,メイン!G2:G32) を入力(コピペで大丈夫です)
そして、
  •  F5セルに =SUMIF(メイン!D2:D32,ダッシュボード!E5,メイン!G2:G32) を入力
もしくは、
  1. F4セルをクリック
  2. F2ボタン (もしくはダブルクリックで数式編集)
  3. Ctr+Shift+矢印上↑
  4. Ctr+C
  5. Esc
  6. 矢印下↓
  7. F2ボタン(もしくはダブルクリックで数式編集)
  8. Ctr+V
  9. 式内「ダッシュボード!E4」を「ダッシュボード!E5」へ変更
続いて、
  • 画面左下のタブで、「ダッシュボード」に移動
  • E4からF5を選択
  • 画面上部の「挿入」(左から二番目)から1つ目の円グラフを選択
 
これで、男女ごとの過去11顧客来店売り上げデータがVisualizeされました。
 
  • 画面左下のタブで、「メイン」タブに移動してください
  • G2をクリック
  • Ctr+Shift+矢印下↓
  • 画面上部の「挿入」(左から二番目)から1つ目の折線グラフを選択
  • グラフをクリック
  • Ctr+X
  • 「ダッシュボード」タブに移動
  • Ctr+V
後少しです、
  • 画面左下のタブで、「追加」に移動してください
  • A1をクリック
  • Ctr+Shift+矢印下↓
  • Ctr+Shift+矢印右→
  • Ctr+C
  • Ctr+
  • PageUpで「メイン」へ移動
  • A13で、Ctr+V

これでデータ集計の範囲が広がり、過去男女ごとの過去30顧客来店売り上げデータを集計できました。

 

最後に、

  • 折線グラフのグラフ線をクリック
  • 画面上部の数式バーに「=SERIES(,,メイン!$G$2:$G$12,1)」を=SERIES(,,メイン!$G$2:$G$32,1)へ変更

 

これで、直近30来店顧客についての、ダッシュボードがなんとなく形になりました。

 

 

今回のExerciseには含めませんが、最初に作った合計、平均、標準偏差、にはどういった影響があるか見てみます。やり方は簡単で、それぞれの数式内のD13とG13をD32、G32に変えるだけです。

 

 

みなさんは何に気づかれましたでしょうか?

合計は増加、平均は減少しました。

 

また、データのばらつき(偏差)も減少しましたね。これは今回だけに限った話ではなく、サンプルデータが少ない時ほどばらつきが大きくなる傾向があります。サンプルという言葉の由来は、何千といる顧客の中から、直近11、30顧客をサンプリングしているので、統計やデータサイエンスの世界ではこう呼んでいます。また、30、という数字も後々大事な基準となってきます。

 


勿論、まだダッシュボードとして全然面白いものではありません。そもそも直近顧客1人1人のデータを折線でプロットすることにほぼ意味はありません。

 

今回の目的は、グラフを作るという作業効率向上、ダッシュボードという独立したフォーマットによる見える化のプロセス、一連の「流れ」を体感してもらうことでした。

 

本来Visualizationの持つ力はこんなものではありません。そもそも Visualizationは、最終的な決断に結びつくものでなければ意味がありません。男女別の購入金額を知ったところで、明日から女性客だけに注力する、もしくは男性客の客足を伸ばす、という決断に至る程の材料ではないからです。


具体的な内容は、ここでとやかく言うより、今後具体例をお見せしながら議論させていただきます。

 

ではまた!お疲れ様でした。

 

みなさんごきげんよう。Snafkinです。

 

今回は、Data visualizationをやります。Data Visualizationは一般的に言われているData Scienceの中でも最も重要なTopicです。

 

ビジネスを初めとするデータを扱う環境では、まず集めたデータの全体像(例えば合計値やデータのばらつき等)やジャンルごとの部分像(例えば、日中は女性の方が多い、男性客の方が来店毎の商品数が多い等)を周知する機会が多いです。

 

自分の上司や顧客に対して、高度な統計値だけ見せてプレゼンするのは、センスがありませんよね?

 

一方、ここまでカラフルである必要はありませんが、下図の様に様々な切り口で全体感をインプットした後で、

 

「これが集計したサンプルデータの全体像です。

これを元に、統計手法を使って検証したところ、95%の確率で正しいと言えますので、私たちの現場感は実態から程遠くないでしょう。

 

と言えたら、どうでしょう? 最終的にはこのレベルまでお連れいたします。

 

 

我々の世界ではこういったレポートをダッシュボード(Dash Board)と呼びます。車の運転席の目の前のダッシュボードも一目で状況を掴めますよね?

 

ポイントは、このダッシュボードをプレゼンの度に毎回作るのではなく、時事刻々と自動でアップデートさせることができるということです。

 

設計次第で、事務職の方がデータベースにデータを入力する度に、総合職(営業職)の方のダッシュボードがアップデートされます。そのインフラ整備の手法も先々お伝えしますね。

 

<本題>

さて、本日の課題はこちらです。まずは、こちらのデータベースをダウンロードしてください。前回作成したデータベースにいくつかデータが入力されています。画面左下に、「メイン」「追加」と書かれたタブがあることご確認ください。

 

 

メインに6つのデータエントリー

 

「追加」に、5つのデータエントリーがあることも確認できたら、一度、「メイン」タブに戻ってください。

 

まずは売り上げの合計をします。以下のプロセスを大事にしてください。

  • セルG8を選択
  • =sum( と入力
  • Ctr + Shift + 矢印キー上 
  • Shift +  矢印キー下
  • Enter
  • 再度セルG8を選択
  • Ctr + X
  • セルH8を選択
  • Ctr + V
  • F2
  • 「=SUM(G2:G7)」を「=SUM(G2:G13)」へ
  • Enter

で完了です。下図のようになっていれば正解です。

 

次に「追加」タブに移動してください。この時にできれば、Ctr+Page Downで移動してみてください。

  • セルA1を選択
  • Ctr + Shift + 矢印キー下
  • Ctr + Shift + 矢印キー右

こうなってますか?

  • Ctr + C
  • 「メイン」タブに移動 (できればCtr+Page Up)
  • セルA8を選択
  • Ctr + V

こうなってますでしょうか?

 

先程作ったSum関数(セルH8)もアップデートされていますね?

 

  • 画面左下の「 + 」ボタンで新しいシートを作成し、

 

  • ダッシュボードと名付け
  • 「メイン」のH8をCtr+Xで切り抜き
  • 「ダッシュボード」のどこかにCtr+Vで貼り付け
  • その左横に「合計」とラベル付け

 

これで直近11来店客データの合計を表示するダッシュボードが完成です。

 

直近11がいいのか、20がいいのか。合計を見るべきか、平均を見るべきか、ビジネス特性や読み手によります。

 

例えば、スーパーの陳列担当者であれば、直近の来客の購入合計金額気になるかと思います。陳列がうまく機能していないなら、早く構成を考え直したくなるはずです。

 

一方、スーパーの店長であれば1週間の売り上げ平均が気になるはずです。火曜にセールがあったり、土日にしかこれないお客さんもいるわけで、刻一刻、日々の動きにだけ一喜一憂するわけにもいきませんので。

 

全く違うビジネス、例えば自動車メーカーであれば、車の買い替えサイクル、5-10年毎の動きが気になるんではないでしょうか。

 

お気づきかと思いますが、ビジネスの内容をよくわかってないと、そもそも何をVisualize(表現)していいかわかりませんね? これこそ正に、「皆さんが他の人に一から説明するよりも、皆さんがデータサイエンスの技術を習得した方が、効率も効果も高い」と初回に申し上げた理由です。

 

次回も引き続きExcelベースの実践です。ある程度Excelでダッシュボードを形にした後、Pythonで複製する流れです。

 

ではまた!