【Python】Tableauと連携してできること

【Python】Tableauと連携してできること

公開: 更新:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座



TableauとPythonの連携でできること

TableauとPythonを連携させることで、データ分析のワークフローを大幅に拡張できます。Tableauの視覚化能力とPythonの高度な分析機能を組み合わせることによって、単体では実現できない複雑な分析タスクも実行可能になります。

【サンプルコード】
# TabPyを使用してTableauからPythonスクリプトを実行する例
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans

# TabPyに公開する関数を定義
def kmeans_clustering(data, n_clusters):
    # データフレームに変換
    df = pd.DataFrame(data)
    
    # K-means クラスタリングを実行
    kmeans = KMeans(n_clusters=n_clusters, random_state=42)
    df['cluster'] = kmeans.fit_predict(df)
    
    # 結果を返す
    return df.to_dict(orient='records')
【実行結果】
# Tableauから関数を呼び出した結果
[
  {"x": 1.2, "y": 2.3, "cluster": 0},
  {"x": 5.7, "y": 3.1, "cluster": 1},
  {"x": 1.5, "y": 1.9, "cluster": 0},
  {"x": 6.2, "y": 3.5, "cluster": 1}
]

TabPyというサーバーを利用することでTableauからPythonスクリプトを実行できます。この連携により、機械学習モデルの結果をTableauのダッシュボードに直接表示したり、カスタム計算を実行したりすることが可能です。

Pythonで作成した分析結果をTableauで視覚化するワークフローも構築できます。事前処理や複雑な計算をPythonで行い、その結果をCSVやデータベースに保存してTableauから参照する方法が一般的です。


Python研修一覧はこちら

目的に合うPython研修を一覧形式から探したい方は、ぜひご利用ください。

Python研修を比較する

Java研修一覧はこちら

目的に合うJava研修を一覧形式から探したい方は、ぜひご利用ください。

Java研修を比較する

PHP研修一覧はこちら

目的に合うPHP研修を一覧形式から探したい方は、ぜひご利用ください。

PHP研修を比較する

新入社員研修

目的に合う新入社員研修を一覧形式から探したい方は、ぜひご利用ください。

新入社員研修を比較する

全ての研修からも探したい方はこちら

Tableauで活用できるPythonライブラリ

TableauとPythonを連携する際には、データ分析や機械学習に特化した多様なライブラリを活用できます。特にPandasやScikit-learnなどのライブラリはTableauのデータ分析機能を補完する役割を果たします。

【サンプルコード】
# Tableauで使用するための時系列予測モデル
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split

def predict_sales(historical_data, forecast_periods=12):
    # データ準備
    df = pd.DataFrame(historical_data)
    
    # 特徴量エンジニアリング
    df['month'] = pd.to_datetime(df['date']).dt.month
    df['year'] = pd.to_datetime(df['date']).dt.year
    
    # 学習データとテストデータに分割
    X = df[['month', 'year']]
    y = df['sales']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # モデル学習
    model = RandomForestRegressor(n_estimators=100, random_state=42)
    model.fit(X_train, y_train)
    
    # 将来予測用のデータフレーム作成
    last_date = pd.to_datetime(df['date'].max())
    future_dates = [last_date + pd.DateOffset(months=i+1) for i in range(forecast_periods)]
    future_df = pd.DataFrame({
        'date': future_dates,
        'month': [d.month for d in future_dates],
        'year': [d.year for d in future_dates]
    })
    
    # 予測実行
    future_df['predicted_sales'] = model.predict(future_df[['month', 'year']])
    
    return future_df[['date', 'predicted_sales']].to_dict(orient='records')
【実行結果】
[
  {"date": "2023-01-01", "predicted_sales": 1250.45},
  {"date": "2023-02-01", "predicted_sales": 1320.78},
  {"date": "2023-03-01", "predicted_sales": 1450.21},
  {"date": "2023-04-01", "predicted_sales": 1520.33},
  {"date": "2023-05-01", "predicted_sales": 1620.67}
]

PythonのPandasライブラリを使用することでデータの前処理や変換、集計などの操作をTableauに渡す前に実行できます。これにより、Tableauでは難しい複雑なデータ操作もスムーズに行えるようになります。

Scikit-learnTensorFlowなどの機械学習ライブラリを活用することによって、予測モデルやクラスタリング分析の結果をTableauで視覚化できます。これらのライブラリによりTableauの分析能力を大幅に拡張することが可能です。

PythonとTableauを連携するための設定方法

TableauとPythonを連携するには、TabPyサーバーのセットアップと適切な設定が必要です。この設定により、TableauのワークブックからPythonスクリプトを直接実行できるようになります。

【サンプルコード】
# TabPyのインストールと起動
# 1. TabPyをインストール
pip install tabpy

# 2. TabPyサーバーを起動
tabpy

# 3. 関数をTabPyサーバーに登録するスクリプト
from tabpy.tabpy_tools.client import Client

# TabPyクライアントを初期化
client = Client('http://localhost:9004/')

# 関数定義
def multiply(x, y):
    return x * y

# 関数をTabPyに登録
client.deploy('multiply', multiply, 'Multiplies two numbers', override=True)
【実行結果】
[INFO] Loading state from state file
[INFO] Will be saving state to /Users/username/.tabpy/state.txt
[INFO] Done loading state
[INFO] Web service listening on port 9004
[INFO] Register function as an endpoint with config=[TabPyAppClientConfig(deployment_version=1, name=multiply, description=Multiplies two numbers, type=model, target=None)]
[INFO] Successfully deployed multiply

TabPyサーバーをセットアップした後、Tableauで外部サービス接続を設定します。Tableauの「ヘルプ」メニューから「設定と実行」を選択し、「外部サービス接続」でTabPyサーバーのURLとポートを入力することによって連携が完了します。

Tableauの計算フィールドからPython関数を呼び出すには、SCRIPT_*関数を使用します。例えばSCRIPT_REAL("return _arg1 * _arg2", [Field1], [Field2])のように記述することで、PythonスクリプトをTableau内で実行できるようになります。


Python基礎・実践(Django)

企業・法人向けのPython研修では、基礎から応用まで体系的に学べます。

Python研修の詳細

DX社員研修

企業・法人向けのDX研修では、実務に繋がるリスキリングでITレベルを向上させます。

DX研修の詳細

Javaエンジニア育成研修

企業・法人向けのJavaエンジニア育成研修では、Javaの基礎から応用まで確実に習得できます。

Java研修の詳細

新卒・新入社員向け研修

企業・法人に新入社員・新卒社員に向けたプログラミング研修を提供しています。

新入社員研修の詳細

コードキャンプのIT研修を全て見る

TableauとPythonを使った実践的なデータ分析例

TableauとPythonを組み合わせた実践的なデータ分析では、Pythonで高度な処理を行い、その結果をTableauで視覚化するワークフローが有効です。このアプローチにより、複雑なデータ分析タスクも効率的に実行できます。

【サンプルコード】
# 感情分析をTableauで可視化するためのPythonスクリプト
import pandas as pd
from textblob import TextBlob

def sentiment_analysis(text_data):
    # データをリストに変換
    if isinstance(text_data, str):
        texts = [text_data]
    else:
        texts = list(text_data)
    
    # 感情分析を実行
    results = []
    for text in texts:
        if pd.isna(text) or text == '':
            results.append({
                'text': text,
                'polarity': 0,
                'subjectivity': 0,
                'sentiment': 'neutral'
            })
            continue
            
        analysis = TextBlob(str(text))
        polarity = analysis.sentiment.polarity
        
        # 感情ラベルを決定
        if polarity > 0.1:
            sentiment = 'positive'
        elif polarity < -0.1:
            sentiment = 'negative'
        else:
            sentiment = 'neutral'
            
        results.append({
            'text': text,
            'polarity': polarity,
            'subjectivity': analysis.sentiment.subjectivity,
            'sentiment': sentiment
        })
    
    return results
【実行結果】
[
  {
    "text": "このサービスは素晴らしいです!",
    "polarity": 0.8,
    "subjectivity": 0.75,
    "sentiment": "positive"
  },
  {
    "text": "使いにくいインターフェースで残念です",
    "polarity": -0.6,
    "subjectivity": 0.5,
    "sentiment": "negative"
  },
  {
    "text": "普通に機能しています",
    "polarity": 0.05,
    "subjectivity": 0.2,
    "sentiment": "neutral"
  }
]

テキスト分析はTableau単体では難しい処理ですが、Pythonと連携することで顧客レビューの感情分析やトピックモデリングなどが可能になります。これらの分析結果をTableauのダッシュボードに統合することによって、テキストデータに関する深い洞察を視覚的に表現できます。

地理空間分析でもPythonとTableauの連携が効果的です。GeoPandasShapelyなどのPythonライブラリを使って複雑な地理空間演算を行い、その結果をTableauで地図上に表示することができます。これにより、位置情報に基づく高度な分析も実現可能です。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

企業・法人向けのIT・プログラミング・生成AI研修を探す、比較する - IT・プログラミングを知って学べるコネクトメディア CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 3.5日の研修で、年間1,600時間の削減効果が見込まれる。東京きらぼしフィナンシャルグループのDX人材育成事例 - IT・プログラミングを知って学べるコネクトメディア 配属3ヶ月で30%の生産性向上を実現するいよぎんコンピュータサービスの新人研修に迫る - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する