Tableauは、データを見やすく表示するアプリケーションで、Pythonはプログラミング言語です。
この二つを組み合わせると、Tableauの操作画面上でPythonのプログラムを直接組み込むことができます。
これによって複雑なデータの処理や、高度な分析ができるようになります。
この記事では、具体的な使い方と、ビジネスにどのような良い点があるかを詳しく説明します。

TableauとPythonの概要
Tableauはデータの可視化ツールとして広く利用され、Excelやスプレッドシートより数段緻密なダッシュボードやインタラクティブなビジュアルを提供します。特にableau Desktop」「Tはダッシュボードの作成やレポートの設計に使用され、「Tableau Server」や「Tableau Online」を通じてオンライン上での共有が可能です。
開発者向けには「Tableau Developer Program」があり、APIやSDKを利用してカスタムアプリケーションの開発や統合が行えます。
また、「Tableau Prep」はデータの前処理と整形を効率的に行うためのツールで、データの連携と自動化に役立ちます。

過去の記事でもいくつかまとめているので、ご覧ください。
一方、Pythonは多機能なプログラミング言語で、データ分析、機械学習など幅広い用途に使用されます。
Pythonは、読みやすく書きやすいプログラミング言語で、いろいろな目的に使えます。特にデータを扱う仕事では、NumPyやPandasという便利なツールを使って、データを効率よく処理できます。
また、コンピュータに学習させる(機械学習)時には、Scikit-learnやTensorFlowというツールを使って、予測モデルを作ったり、将来の予測をしたりできます。
さらに、データの統計的な分析や、グラフを作る時には、MatplotlibやSeabornというツールがよく使われています。

TableauとPythonの結合
TableauとPythonを一緒に使うと、データの分析とビジュアライズをより高度に行うことができるようになります。TableauとPythonの連携は「TabPy」と呼ばれます。文字どおり両方の文字を抜粋して合体させた呼び方です。
TabPyを使うと、Tableauの中でPythonのプログラムを動かせます。
この組み合わせで、Pythonの強力なデータ処理能力と、Tableauの分かりやすい画面表示機能を同時に使えます。
そのため、データがリアルタイムで更新されたり、複雑な計算結果がすぐに図や表で表示されたりします。
また、データ分析の幅を広げることも可能です。各企業では、この方法を使ってデータをより深く理解して、素早い判断を下すことに活かしています。

TableauとPythonの連携によって、下記のようなケースで利用することができます。
顧客離脱予測: Pythonを使用して顧客の離脱を予測するモデルを作成します。
感情分析: テキストデータを分析し、感情スコアを算出します。
最適化問題の解決: 配送ルートの最適化などの問題を解決します。
データクリーニング: データの欠損値を補完し、クリーニングを行います。
カスタムダッシュボード: Pythonの出力を使用してカスタムダッシュボードを作成します。
感情分析: テキストデータを分析し、感情スコアを算出します。
最適化問題の解決: 配送ルートの最適化などの問題を解決します。
データクリーニング: データの欠損値を補完し、クリーニングを行います。
カスタムダッシュボード: Pythonの出力を使用してカスタムダッシュボードを作成します。
Tableauとpythonを連携してデータ活用するには、次の手順で設定とデータ分析を進めていきます。
WindowsとMacで分かれており、下記はWindowsの場合です。
Pythonのダウンロード
まず最初にPythonの公式サイトにアクセスして、Windows用の最新バージョンをダウンロードします。ダウンロードされたら、インストーラーを開きます。
アプリケーションが開くので、「Install Now」の前にある「Add Python 3.x to PATH」のチェックボックスを選択します(xはバージョンによって異なります)。
これにより、PythonとpipがシステムのPATHに追加されるので、「Install Now」をクリックしてインストールを開始します。
インストールが完了したら、コマンドプロンプトを開き、「python –version」と入力して、インストールされたPythonのバージョンを確認します。

Tabpyのインストール
次に、TabPyをインストールするために、コマンドプロンプトに「pip install tabpy」と入力します。TabPyはオープンソースのPythonライブラリなので、無料で利用できます。
しばらくしてコードが出力されてインストールされます。
TabPyがインストールされたら、「tabpy」と入力してサーバーを起動します。
この時に「Do you wish to proceed without authentication? 」と、認証の有無を求められますが、テスト段階では「Y」とそのまま進めて大丈夫です。

もしエラーが出たら、専門エンジニアに聞くかChat GPTなどでエラーの詳細を入力すれば解決してくれることもあります。
Tableauとの接続設定

手順は次のとおりです。
(1)Tableau Desktopを開き、「ヘルプ」メニューを選びます。
(2)「設定とパフォーマンス」から「分析の拡張機能の接続管理」を選びます。
(3)「TabPy/外部API」を選びます。
(4)TabPyサーバーのアドレスと番号(ポート番号)を入力します。通常は「9004」です。

接続テストを実施します。
テストが無事にできたら、設定を保存します。

Python計算フィールドの作成
TabPyサーバーに接続が完了したら、Tableau内でPythonのコードを使用した計算フィールドを作成できます。[分析] > [計算フィールド] をクリックして、新しい計算フィールドを作成します。
例えば、良く使うPythonスクリプトは以下の関数です。
SCRIPT_REAL:数値を返す
SCRIPT_STR:文字列を返す
SCRIPT_BOOL:ブール値を返す
SCRIPT_INT:整数を返す
SCRIPT_STR:文字列を返す
SCRIPT_BOOL:ブール値を返す
SCRIPT_INT:整数を返す
コードの一例は下記で、SUM([Sales])をPythonに渡して2倍にした結果を返しています。。
SCRIPT_REAL( “return [input1] * 2”, SUM([Sales]) )
プログラムの結果は、すぐにTableauに戻ってきて、画面上にグラフや表で表示されます。

相関係数とp値を計算するためのスクリプトの例
Tableauの中でPythonを使って、二つのデータの関係性(相関係数)とその信頼性(p値)を計算できます。TableauにPythonのプログラムを入れるには、「SCRIPT_REAL」という特別な関数を使います。
実際のプログラムでは、SciPyというPythonのツールの中の「pearsonr」という機能を使います。これで相関係数とp値が計算できます。
例えば、「Variable1」と「Variable2」という二つのデータについて計算したい場合、次のようにTableauで設定します。
SCRIPT_REAL(‘
from scipy.stats import pearsonr
data1 = _arg1
data2 = _arg2
correlation, p_value = pearsonr(data1, data2)
return [correlation, p_value]
‘, SUM([Variable1]), SUM([Variable2]))
このプログラムでは、Tableauから「_arg1」と「_arg2」という二つの変数でデータを受け取ります。
それらのデータを使って、関係性(相関係数)とその信頼性(p値)を計算して結果をTableauに返します。
入力変数のプレースホルダーについて
プログラミングにおける入力変数のプレースホルダーは、関数やクエリで実行時に外部からのデータを受け取るために用いられる仮の変数です。これを使用することで、コードの再利用性が向上し、動的なデータ処理が可能になります。
たとえば、SQL文でのプレースホルダー使用では、クエリを安全にし、SQLインジェクション攻撃を防ぐ効果があります。
Pythonでは、関数定義時にプレースホルダーとして引数を設定し、関数呼び出し時に具体的な値を渡すことで、柔軟に関数の振る舞いを変更できます。
また、機械学習のモデル訓練では、プレースホルダーを使用して新しいデータポイントでモデルを評価することが一般的です。
例2:惑星の半径と体積の相関を確認
TableauとPythonを一緒に使って、惑星の半径と体積がどのように関係しているかを調べることができます。手順としては、Pythonの「scipy.stats」というツールの中にある「pearsonr」という機能を使います。
Tableauの新規フィールド式に、①惑星の半径②その半径から計算した惑星の体積の2つの設定を入力します。
Pythonのプログラムを入力すれば、この2つの関係が計算されます。
SCRIPT_REAL(“
from scipy.stats import pearsonr
import numpy as np
radius = _arg1
volume = 4/3 * np.pi * np.power(radius, 3) # 体積を計算
correlation, p_value = pearsonr(radius, volume)
return correlation
“, [半径])
このプログラムを走らせると、まず惑星の半径のデータを受け取ります。
その半径から惑星の体積が計算されます。
計算結果は、Tableauの画面上で図や表として表示されて、惑星の半径によって体積がどのように分かるのか確認できます。

ダッシュボード上で結果の表示と調整
Pythonスクリプトの出力結果は、Tableauのダッシュボードで確認します。結果が予想通りかどうかチェックすることが重要です。
もしエラーが出た場合は、Tableauの画面下部(ステータスバー)や記録ファイル(ログファイル)にエラーの内容が表示されます。
それを元にコードを見直しながら、エラー箇所を特定していきましょう。

データの合計や分割表示
このように出力した結果から、データの合計や分割表示ができます。例えば、売上データを地域ごとや時間帯別に集計したい時、Pythonを使って細かい計算をし、その結果をTableauで図や表にして見ることができます。ビジネスの様々な状況に合わせてデータの見方を自由に変えられるようになります。
ビジュアライズの調整
また、Pythonで出力した結果を元に、データの見せ方をより細かく調整することもできます。例えば、グラフのマークやサイズを調整して見やすくしたり、グラフの種類が豊富なのでいくつか切り替えてそのデータにあったものを選びましょう。

応用と活用
このように、PythonとTableauによってデータ出力、可視化されたデータ活用モデルは、様々なモデルや実例に応用されます。複雑なモデルの構築
Pythonスクリプトの実行では、シンプルな計算だけでなく複雑な機械学習モデルも構築可能です。複雑なモデルを作ることは、高度なデータ分析や将来を予測するシステムを開発する上で欠かせません。
このためには、大量のデータを扱い、様々な要素の関係を分析する技術が必要です。
複雑なモデルを作る際は、機械学習や統計の方法を使って、データの中にある規則性を見つけ出し、それを形にします。
こうして作られた複雑なモデルは、その正確さと幅広い適用性により、様々な産業で活用されます。
リスクを評価したりお客様の行動を予測したり、商品を改良したりするのに使われます。
様々なデータセットに対して応用
様々な種類のデータセットを扱えることも特筆するポイントです。。業種や業界によって集められるデータは、それぞれ違った特徴や課題を持っています。
データの種類に合わせて適切な分析方法を選ぶことで、より具体的で役立つ情報を得ることができます。
例えば、小売店の顧客の買い物データは、お客様の行動を理解したり将来の売り上げを予測したりするのに使われます。

他にも、病院の患者さんのデータは、病気の診断を助けたり、最適な治療法を見つけたりするのに役立ちます。

これらのデータに対して、機械学習や統計の手法を使うことで、特定の問題に対する解決策を見つけ出し、より良い判断を下せるようになります。
まとめ
このようにTableauとPythonを一緒に使うと、データ分析の可能性が広がります。Pythonには多くの便利なツール(ライブラリ)があり、これらを使って将来の予測や機械学習をTableauの中で直接行えるようになります。そのため、データに基づいて素早く判断を下すことができます。
この記事で説明した方法を使って、ぜひ自分の仕事や自社システムの構築に活用して頂ければ幸いです。
Tableauとpythonの連携によるデータ活用でSPENDAに相談したい方は、お問い合わせフォームよりお問い合わせ頂けます。


