2022/06/28

Python連携

Pythonデータ関数の使い方

※本記事は6/28開催セミナー「TIBCO Spotfire活用セミナー ~ Pythonデータ関数の使い方 ~」で紹介した内容です

このコンテンツでは、オンラインセミナー「Spotfire活用セミナー 〜Pythonデータ関数の使い方〜」の内容の一部を記事ベースでご紹介しています。本コンテンツで利用したバージョンは11.4となります。ご利用環境によって、一部画面構成が異なる可能性があります。ご了承ください。

探索的分析/原因分析の領域で
高い評価と実績
TIBCO Spotfire

Spotfireは分析に必要な機能を単一製品でカバーするビジュアルアナリティクスツールです。

Pythonデータ関数とは

Pythonスクリプトによる計算結果をSpotfireに返すことで、Spotfireの分析機能を拡張できる機能です。
データ関数はPython以外にも、RやTERR(TIBCO Enterprose Runtime for R)等のエンジンも利用可能です。

利用できるPythonのバージョン

Spotfire Analyst 10.7からデータ関数のエンジンとしてPythonがソフトウェア内にバンドルされ、利用可能になりました。

バンドルされているPython Interpreterとデフォルトでインストール済みのパッケージのバージョン早見表を以下にまとめました。

※Pythonデータ関数の動作確認は、必須パッケージの上記バージョンを使用して行っています。バンドル版Pythonパッケージの削除やアップデートは行わないでください。

データ関数とIronPythonとの違い

Spotfireで使えるPythonには上述したデータ関数だけでなく、テキストエリアで使えるIronPythonがあります。

IronPythonとは、.NET Framework上で動作するPythonです。テキストエリア内で定義したスクリプトで、簡単なアクションまたはツールを組み込めます。
IronPythonの詳細はこちらをご参照ください。

Pythonスクリプトの作成と実行

今回はSpotfireに取り込んでいるデータテーブルに対して、Pythonで処理を行います。

同じ処理をTERRで実施した記事はこちらをご覧ください。

事前準備

事前準備として、Spotfireにサンプルデータを読み込みます。
まず以下のテキストをコピーしてください。

1, 2
2, 3
3, 4
4, 5
5, 6
6, 7

コピー後、Spotfire画面左側の+ボタンをクリックし、「その他」 > 「クリップボードからデータを貼り付け」を選択します。

するとインポートの設定が出てきます。「OK」をクリックします。

「データを分析に追加」画面が出てきます。以下のテーブル名を入力後、「OK」を押します。

  • 新しいデータテーブル:clipboard

この画面が表示されたら、データの読み込みは完了です。

データテーブルを表示して、サンプルデータを確認します。
「ビジュアライゼーションタイプ」で「テーブル」を選択します。

データ関数

本コンテンツでは、以下の処理を実行します。

  • Spotfireに読み込んだデータテーブルをPythonで読み込む。
  • Pythonで各カラムの総和を計算する。
  • 計算結果をSpotfireに渡し、データテーブルで表示する。

データ関数の設定を行います。メニューバー「ツール」> 「データ関数の登録」を選択します。
すると、「データ関数の登録」ダイアログが表示されます。

Pythonデータ関数を利用するため、以下を選択します。
タイプ:Pythonスクリプト

パラメータの入力

まず、「データ関数の登録」ダイアログにおいて「パラメータの入力」タブを選択します。
ここでは、SpotfireのデータテーブルをPython側に読み込ませます。

画面右側の「追加」をクリックします。

すると、「入力パラメータ」ダイアログが表示されます。
先ほどSpotfireで読み込んだデータテーブルclipboardをPythonに渡す設定をします。

  • 入力パラメータ名:clipboard
  • 表示名:clipboard
  • タイプ:テーブル
  • 使用可能なデータ型:Integer

入力できたら「OK」をクリックします。
これで設定は完了し、Python側でもclipboardという変数名でデータフレームを処理できます。

スクリプト

次に、「スクリプト」タブを選択します。ここでは、Pythonのスクリプトを記述できます。
「パラメーターの入力」の設定によって、clipboardという変数名でテーブルを処理できる状態になっています。
「スクリプト」タブ内でテーブルの各カラムの総和を集計する下記のコードを入力します。

  • 名前:test
  • スクリプト:下記のコードを入力
col_sum = clipboard.sum(axis=0)

出力パラメータ

最後に、「出力パラメータ」タブを選択します。ここでは、Spotfire側に渡すパラメータを設定します。
画面右側の「追加」をクリックします。

「出力パラメータ」ダイアログが表示されます。今回は作成したcol_sumという変数を渡す設定をします。

結果パラメータ名:col_sum
表示名前:col_sum
タイプ:テーブル

入力が完了したら「OK」をクリックします。

実行

「スクリプト」「パラメータの入力」「出力パラメータ」の設定完了後、「データ関数の登録」ダイアログ右上の「実行」をクリックします。

すると、「パラメータの編集」ダイアログが表示されます。ここでは、選択したデータ関数の入力および出力のパラメータを処理する方法を定義できます。

入力

「入力」タブでは、入力パラメータの処理方法を定義します。ここでは、データテーブルclipboardの各カラムの総和を算出するため、「入力ハンドラ」にカラムを指定します。

  • 入力パラメータ:clipboard
  • 入力ハンドラ:カラム
  • カラムの選択:全てのカラムを選択

出力

出力タブでは、出力パラメータの処理方法を定義します。ここでは、Spotfire側でcol_sumというデータテーブルを作成するため、「出力ハンドラ」にデータテーブルを指定します。

  • 出力パラメータ:col_sum
  • 出力ハンドラ:データテーブル
  • 新しいデータテーブルの作成:col_sum

設定が完了したら、「OK」をクリックします。すると、処理が実行されます。

「OK」をクリックして以下の画面が出た場合、「いいえ」を押します。
※「はい」を押すと、作成したデータ関数をライブラリーに保存できます。

結果の確認

Pythonの計算結果としてSpotfireに出力したデータテーブルを確認します。

col_sumという2行のデータテーブルが出力されます。
21と27は、元データclipboardの各カラムの総和になります。

  • 21 = 1+2+3+4+5+6
  • 27 = 2+3+4+5+6+7

下図のように、データテーブルcol_sumは、計算通りの結果が出力できていることが確認できました。

このように、SpotfireからデータテーブルをPythonデータ関数に渡して、Pythonによる処理を行い、結果をSpotfireの新たなデータテーブルとして取得できます。

探索的分析/原因分析の領域で
高い評価と実績
TIBCO Spotfire

Spotfireは分析に必要な機能を単一製品でカバーするビジュアルアナリティクスツールです。

【Python連携】記事一覧に戻る
全記事一覧に戻る