イクメンデータアナリストのブログ

コンサルのこと/Pythonのこと/Tableauのこと などを備忘録的に書いていこうと思います。

Tableauで第2軸を追加する(右と左バージョン)

Tableauで第2軸を追加する(右と左バージョン)

こんにちはbudouです!

今回はタブローでチャート表現をしているとこれまた必ず必要になってくる「2軸(またはそれ以上の軸)で表現するとき」に関して、僕グラフや折れ線グラフの時に右と左と軸を分けての表現を見ていきたいと思います。

はじめに

「地域ごとの売上」のグラフをみていた時に、 「このグラフに利益も一緒に追加して比べながらみたいな...」とかありますよね。 そんな時に使う方法です。

「地域ごとの」 軸1:売上 軸2:利益 これを作ります。

f:id:budounomizu:20190629121854p:plain
今回のエントリーにおける完成イメージ

第一軸目の表現、「カテゴリーごとの売上」を作る。

「地域」「売上」をCtrlで選択して、棒グラフを選択します。

f:id:budounomizu:20190629123053p:plain

第2軸を追加する。

「利益」をグラフの右端にドラッグ&ドロップします。

f:id:budounomizu:20190629123123p:plain

あれ、なんかグラフの自動判定が変ですよタブローさん。

f:id:budounomizu:20190629123200p:plain

そんなときは手動で修正しましょう。 それぞれのグラフのグラフ種類を変更します。 「売上」→棒グラフ(左軸) 「利益」→折れ線グラフ(右軸)

f:id:budounomizu:20190629123941p:plain

するとー

f:id:budounomizu:20190629124018p:plain

できたぁ

おわりに

「地域ごとの売り上げ」だけでは見えてこなかった事実が見えてきましたね。

あれ...?なんで中部地方の売り上げは高いのに、利益は低いんだろう。。 というところから、 次の疑問(それに対する仮説)を持つことが可能になりますよね!

多数軸に関してはこちらのエントリーもありますので、もしよかったらご覧ください。

www.budounomizu.work

多数軸の表現方法のひとつですね。他にも沢山表現方法あるのでいろいろと追加していきたいと思ってます~ 探索的に作るのにはまぁ、便利ですね。

初めのうちは僕も「あ~~どうやるんだわからない~」ってなりましたが、 分かってくると本当に便利なので、タブロー初心者への一助になりますと嬉しい限りです。

Tableau VS Excel !!

こんにちは!budouです!

今回は、タブローとエクセルどちらが良いのか! というとことに関して、社内で話題になっていたのもあり、思うことを書き残そうとおもう。

【結論】どっちが良いのか論

タブローとエクセルはどちらが上だ下だというところ自体が間違っており、お互いに得意領域が違うので用途に応じて使い分けるのが正解

f:id:budounomizu:20190626233239p:plain
正解

なぜそう思うか、簡単に深堀りしていけたらと思います。

タブローとエクセルの違いってそれだけ?

・「設計思想がそもそも違う」 ーSQLというデータベース言語で動いている。つまり、考える単位がカラム(行)であること ーデータの変更をしたくなることがよくあると思うが出来ない(しない)

・データ量が多くなった時にそもそもエクセルでは対応不可というタイミングが来てしまうがタブローはもちろん100万行とか余裕で対応可能

というところはありつつの...本日社内のチャットで盛り上がっていたのは下記の話。

タブローはエクセルの上位互換?それとも学習コストが掛かる困った子?

分析ツールとして社内で自分の興味や意思とは関係のないところでTableauの導入が進んだ環境にいらっしゃる方はどこかで疑問に思うであろう「エクセル」vs「タブロー」 そもそもTableauを布教しに来る人も「エクセル」vs「タブロー」の構図を持ち込んで『ほらぁこんなに楽でキレイ!』みたいに言ったりしますよね。

f:id:budounomizu:20190626233801p:plain
タブロvsエクセル

どうなのでしょうね。

最近聞く話の内容を簡単にまとめるとこんな感じ

  • 【エクセル信者】 ・ショートカットキーとか暗記してるから、作業もエクセルで早いけど? ・タブ郎?はじめ聞いたとき日本の会社の製品と思ってた ・汎用能力はやっぱりエクセルじゃない?発注書とかそういったのもエクセルでつくったりするし、使い慣れ度はエクセルが高いから、分析用のチャートを作るときとかもエクセルなんだよな...。 ・タブローアカウントもらったり研修も受けたんだけど、日常で使う機会があまりなくエクセルに帰ってきちゃった...!笑 ・データに変なものが混じってたりするデータだと、加工したりするのにエクセルだとすぐ出来るけど、タブローだとやり方分からなかったりして余計に時間掛かる

  • 【タブロー信者】 ・えぇっ!まだデータ見るときもエクセル使ってるの( *´艸`) ・簡単なグラフ作成だったらエクセルでいいかもしれないけど、「うーん」ここ気なるな。見せ方変えたりいろいろとしたい。と思ったときにはやっぱりタブロー ・深堀するのに全然タブローがはやい ・「自分の部署の取り組み」などのアウトプットをまとめる際に、「エクセル & パワポ」よりもタブローの方が断然見栄えがする。デモに使える。

因みに背景

私の今所属している会社では「Tableau」推しです。

上で抜き出した「エクセル信者」「タブロー信者」ですが、実際どっちも分かるなぁと思ったりします。

エクセル信者の気持ち(チャット見ていて感じたこと)

結局日常使いにまでタブローが落ちてない人たちを見ていると、「使えるようになるまで実は結構ハードルある。」というのが一番の大きい理由かなぁと思いました。

要するに学習コストが高い。 セルフBIとか言ってウソツケー!ヽ(`Д´#)ノ ムキー!! って初めのうちはどうしてもなっちゃうみたい。まぁ、、20年前に突然「ワープロ使って仕事してください。社内で研修を開始します。」と言われたのと似てるのかな。

ちょっと違う気もしますが、言いたいのは「なんでもはじめにツールに慣れるまでは学習コスト要るでしょう」ということ。

(全然ちゃんと検証していないけど) 比較的偉い人多い印象。 実際に手を動かしたりして試行錯誤したりする時間が圧倒的に少なくて、もっと意思決定の会議とか人の作業の確認とかが多い方たちな感じがした。

タブロー信者の人の気持ち(同じくチャットみて感じたこと)

営業メインの人でも実際タブローを会議とかで持ち出す人は、「自分の強みにしてやろう!」とかのモチベーションがある。とか、新しい技術が好きとかな人が多い気はするかなぁ。

あとはやっぱりもともとAccessとかデータベースを触っている(いた)素養のある人がこっちの層の中心を成しているかなぁ。

今後についての所管(雑な予想)

2019年6月現在から見た雑な予想ですが、 エクセルはPCの標準ソフトという位置を確固たるものにしているので引き続き使われ続けるだろうが、今がピークだとすると今後はライセンス数は減っていくんじゃないかなぁと思う。 (事実、私もプライベートPCにエクセル入れてない)

だがしかし!今後引き続きタブローは伸びてくる(拡がってくる)と思う。

現場にいて感じるところで理由は2つ。

一つ目、 「自分たちの持っているデータを活用してどうのこうの~」というところがあった時に

まずはデータを見れるようにしましょう

というところになるが、まだ導入すべき場所はある気がしている。

二つ目、 「導入したけど使いこなせてない」「導入したけどちゃんと作れる人がいない」 というところはすごく多い気がしている。

ちょっと拡散しちゃったけど再度結論

f:id:budounomizu:20190626234155p:plain
共生

エクセルとタブローは何でも一緒に行動する親友とまではいかないだろうけど、 お互いに得意分野を持ったソフトウェアとして共生していくのではないかと思う。

どちらが良い、不要ということではなくて個性のある得意の違い二人をよく知り使いこなすことが大事なのだと思う。

Tableauでサマリーの一部をグラフ上に表示する!

こんにちはbudouです!

今回は、サマリー機能で見ることが出来る記述統計量などの情報を、グラフ上でそのままデータに当てはめることができる便利で素敵な方法を紹介します。

f:id:budounomizu:20190623233449p:plain
完成イメージ

「サマリー機能」「記述統計量」に関してはこちらの記事を参照下さい。 www.budounomizu.work

はじめに

タブローの特徴である「GUI操作でデータから示唆をごく簡単に得られる」というところのとても良い一例かと思います。 少なくともここの機能を使えるようになることで、「おぉ!タブローすごい!」となる人がいるのではないかなぁと思います。 私もこれがポチポチするとすぐに作れることを知って「タブローすご!!」となった一人です 笑

データをレコード単位で表示してソートする。

今回のスタートは、上記の通りで「サマリー機能」を使って、レコード単位でデータの記述統計量のいくつかを見ることができている状態からスタートします。 ここまで作る参考はこちら。

www.budounomizu.work

ちなみにスタートの状態はこんな感じ。

f:id:budounomizu:20190623235836p:plain
今回のスタートの状態

ソートする。

f:id:budounomizu:20190623235947p:plain
ソート

グラフが画面に入りきらずに切れてしまっている!ので画面に収まるように修正する。

  • 画面表示を「ビュー全体」にする。
    f:id:budounomizu:20190624000234p:plain
    ビュー全体

こうなる

f:id:budounomizu:20190624000512p:plain
こうなる

「アナリティクス」ペインを開いて、平均線と四分位数と中央値をグラフに追加する。

  • 「アナリティクス」ペインを開きます。

    f:id:budounomizu:20190624000844p:plain
    アナリティクスペイン

  • 「平均線」と「四分位数と中央値」をドラッグ&ドロップする。

f:id:budounomizu:20190624001223p:plain
平均線と四分位数と中央値をドラッグ&ドロップでグラフに追加する。

f:id:budounomizu:20190623233449p:plain
完成イメージ
出来た!!

ふむふむ。 平均に対して中央値がだいぶ下にあるということは、 売上分布の裾は右側(上の図で見て)に伸びているなぁ~ 売上上位のレコードが平均を引っ張っていて押し上げてるなぁ~ などが「サマリー」がグラフに乗っかることによって、"なんとなくそう見える"というところを越えて数値で説明することが出来そうですね。

おわりに

これは...Pythonで同じものを作ろうと思うと(既にメソッドとしてどこかで公開されているのかも知れませんが、現段階では私は知らない)書く必要いろいろありそうかなぁと思うところですがタブローなら一瞬ですね。スバラシ~~☆彡

Tableauで記述統計量を表示する!

こんにちはbudouです!

今回はタブローを使って一瞬で記述統計量(の一部)の見る方法を書きたいと思います。 (Python.pandasでいうところのDataFrame.describe()と似たようなこと)

f:id:budounomizu:20190623015100p:plain
完成イメージ

はじめに

タブローを使い始めたころ、Pythonとかだと一行でできるこの記述統計量がみたいけどどうやるんだ...! というところで「きっと出来るのだろうけれどもやり方が分からない」という悩みにぶつかっていた時期がありました。。

データインポートしたらまず記述統計量を見たい...という自分からしてみると、「~~!」というストレスが若干ありました。

が、やっぱりタブローならコーディングフリーで10秒以内に表現できました!

そのやり方を書きます。

それは「サマリー」と呼ぶらしい

記述統計量のタブロー内での呼び方は、「サマリー」と呼ぶらしい。 やりたいことの呼び名が分かると検索もできるし一歩進みますよね。

「サマリー」を呼び出そう!

f:id:budounomizu:20190623015625p:plain
サマリー機能を呼び出す
f:id:budounomizu:20190623015927p:plain
サマリー出てきた

まだ何も表示させようとしてないので「サマリー」にも何も出ない。

「サマリー」で計算してほしいものを明確に定義してあげる必要がある

PythonのDataFrameの扱いなどに慣れてしまっていると、タブローの動作の理解に一つだけ気を付けなければならない事がある。 それは、「タブロー内では"メジャー" × "ディメンション"の表現の中で、現在選択されているものに対しての、指定された処理を行いますよ」 という動作になるということ。

・売上のサマリーがみたい。じゃあ...

  • サマリー機能を起動させていて
  • 売上情報を指定する という二つでできるのかと思ったが

f:id:budounomizu:20190623020254p:plain
are

あれ? カウントが1? 合計値も平均値も同じ?

正しくは、 - サマリー機能を起動させていて - 売上情報を指定して - それを "レコード単位で表示出来る" ディメンションを指定する

という事が必要ということみたいでした。

f:id:budounomizu:20190623020652p:plain
ディメンション追加で完成

今回は「レコード単位でサマリーが見たい」というところなので、その意味のディメンションを追加することで、タブローが良しなに計算してくれました。っと

ふむふむ。できた~

Tableauで2軸以上表現のやり方(棒グラフの例)

こんにちはbudouです!

今回はチャート表現をしていると必ず必要になってくる「2軸(またはそれ以上の軸)で表現するとき」に関して、棒グラフを使っての表現を見ていきたいと思います。

完成イメージ
完成イメージ

はじめに「売上」を<年月>で表現する。

「売上」をグラフ表現します。

「売上」をグラフ表現します。
「売上」をグラフ表現します。

「売上」に対して「年月の軸」をとって表現します。

年月追加1
年月追加1
年月追加2
年月追加2
年月追加3
年月追加3

「年・月」で見れれば良いため、四半期の区切りは要らないかなぁ~

年月追加4
年月追加4

「売上」を<年月、カテゴリ>の2軸で表現します。

「カテゴリ」を『行』に追加します。

2軸目追加
2軸目追加

「売上」を<年月、カテゴリ、利益>の3軸で表現します。

「利益」をマークの『色』に落とします。(追加します) ここで行うのは、「利益の軸の表現方法として『色』で分けて~」ということではありますが、サイズで分けたりラベルにいろいろと面白いので、遊んでみてください!

尚、「利益が上がっていない月はどこか」というストーリーを想定してみたため、利益が低い箇所の色がオレンジっぽくなってます。逆に利益が高いところが濃い青になってます。

3軸目追加
3軸目追加
完成
完成

できた~

おわりに

ちなみに、今回の3軸表現は『収まりが良い』と感じるため(恐らく「売上」と「利益」というところで理解の行き来が楽だから)ありかもしれないですが、基本的に一つのグラフに情報を詰めすぎることはあまり良くない事が多い気がしております。 人に理解してもらうことが目的なはずなのに、余計な情報があることによって理解を遅らせてしまうことが理由ですよね。 どうしても3軸以上を一つのグラフに詰め込みたいときは、よく目的と相談しながらグラフ作成をしてみましょう!

扱いやすい!Tableauでクロス集計!

こんにちは!budouです。 今回は、Tableauでクロス集計表を作ってみます。

↓今回作るのはこんな感じ↓

ゴールイメージ
ゴールイメージ

クロス集計?

クロス集計とは、もともと沢山持っている情報から、情報("売上”とか、"年月"とか)を絞り込むことでデータから示唆を得やすくする方法で、エクセルでもピボットテーブルなどとしてもよく使われます。

例えば、『売り上げ』を、「年ごと」×「商品カテゴリ」で見るときや。 他にも、『販売数量』を、「年ごと」×「商品カテゴリ」で見るときなどに使えます。

やり方

1.メジャーの中の「売上」を表の値となるフィールドへ

「売上」をドラッグ&ドロップ

売り上げデータの合計値が出てきましたね。

2.列に「オーダー日」を追加します。

列に年を追加
列に年を追加

売上が「年ごと」に分かれましたね。

3.行に「カテゴリ」を追加します。

行にカテゴリ追加
行にカテゴリ追加

売上が「年ごと」そのうえで「カテゴリ」に分かれましたね。

4.カテゴリに対して、「サブカテゴリ」を行に追加してみます。

行にサブカテゴリ追加
行にサブカテゴリ追加

出来た!ついでに販売数量に関してもクロスしてみる。

販売数量をクロス集計
販売数量をクロス集計

出来た!これでクロス集計の表が一瞬で作れるようになりました。

おわりに

クロス集計はいろいろな場所で必要になってくるし使える。

まずはクロス表で見てみて、目的に合わせてこのクロス表を加工していく。 例えばヒートマップにしたり、棒グラフをクロス表の中に追加したり。 グラフとして分離して見せたいものを表現したり!

Tableauならここまでものの数秒でたどり着くことができるのでやっぱり便利ですね★

使用データ

Tableauについてくる「スーパーストア」のデータを使ってます。

【環境構築】Windows環境で自然言語処理(python)

1.はじめに

業務で自然言語処理をしますが、環境が変わるたび(PCが変わったり)にいちから調べている気がするので、環境構築を備忘のためにまとめておきます。

2.目的

Windows環境で自然言語処理が自在に出来るようになること。新語に対応する辞書(mecab-ipadic-NEologd)が使えていること。

3.環境(下記既に設定済み)

Anaconda3 64bit

※Anacondaのインストールに関しての手順サイトは他にもたくさんあるのでここでは割愛するが↓から落とせる。

https://www.continuum.io/downloads

4.MeCabインストール

ここから “mecab-0.996-64.exe” をダウンロードします。 これを任意の場所にインストールします。(※インストール場所に対してパスを通しますので、場所は覚えておく)

  • パスを通す

    「ウィンドウズマーク」からスタートメニューを開く "環境変数"などと検索して「環境変数の編集」を開く

    環境変数編集
    環境変数編集
    Anacondaの時と同じく”環境変数の編集”で"Path"を選択し、”編集”の"新規"で
    環境変数追加
    環境変数追加

  • MeCabプログラムをAnaconda3(Python)上で使えるようにする。

pip install ipykernel
pip install mecab-python-windows

必要ファイルのコピー

Anaconda3の環境に、MeCabを認識させるため必要ファイルをコピペします。

(MeCabのインストール先)/bin

にある"libmecab.dll"というファイルを

(Anacondaのインストール先)/Lib/site-packages

にコピー&ペーストしてください。

※Anacondaのインストール先は、コマンドプロンプト

>python
>>> import site
>>> site.getsitepackages()

これで調べられます。

MeCabを使っている状態だと「恋ダンス」は「恋」と「ダンス」で名詞が二つということで分かれます。

>python
>>> import MeCab
>>> m = MeCab.Tagger ("-Ochasen")
>>> print(m.parse ("恋ダンス"))
恋      コイ    恋      名詞-一般
ダンス  ダンス  ダンス  名詞-サ変接続
EOS

ここから「恋ダンス」という形で一つの名詞として扱いたいので辞書を変えます。

NEologd辞書を使えるようにする

基本的にこちらの方の記事を参考にさせて頂きそのまま出来ました。

mecab-ipadic-NEologdをWindowsで使ってみる。 - どん底から這い上がるまでの記録

おわりに

目的がクリア出来ているかどうかを確認してみます。

>python
>>> import MeCab
>>> m = MeCab.Tagger(r"Owakati -d C:\neologd")
>>> print(m.parse("恋ダンス"))
恋ダンス        名詞,固有名詞,一般,*,*,*,恋ダンス,コイダンス,コイダンス
EOS

お~ 恋ダンスぅ 

出来ました!