2021/04/27

Python連携

複数の計算カラムを一括作成

このコンテンツでは、Pythonを用いて複数計算カラムを追加する方法について説明します。
なお、本コンテンツで利用したバージョンはSpotfire10.10です。ご利用環境によって、一部画面構成が異なりますので、ご了承ください。

計算カラムをまとめて追加

TERRで複数の計算カラムを一括で作成する方法について、こちらの記事で紹介しました。本記事では、Spotfireに内包されているPythonを用いて、同様の処理を実施していきます。

テストデータを作成

本ケースで利用するテストデータを、Pythonを利用して作成します。次のようなデータテーブルを作成します。

  • カラム数:64
  • レコード数:100
  • データの値:乱数

データ関数の登録

Spotfireメニューより、「ツール」>「データ関数を登録」を選択し「スクリプト」に下記スクリプトを記載して下さい。

import numpy as np
import pandas as pd

a = np.random.uniform(0, 2, (100, 64))
a = pd.DataFrame(a)

出力設定

「出力パラメータ」タブを選択し、作成した変数a を「テーブル」として登録してSpotfire側で受け取れるようにします。「追加」を選択し、出力パラメータを次のように設定してください。

  • 結果パラメータ:a
  • タイプ:テーブル

設定が終わったら右上の「実行」を押します。

実行時の設定

「パラメータの編集」という画面がでます。これはaというPythonが出力したデータをSpotfire側でどのように扱うか設定します。
テーブルとして使いますので、データテーブルを選択してください。

100×64のaというデータテーブルがSpotfire側に作成できます。

計算カラムの作成

計算したカラムを追加します。
1カラム目から33カラムを引いて、2カラム目から34カラムを引いて、ということを繰り返していきます。

データ関数の登録

今度は計算カラムを追加するためのスクリプトを追加します。再度「ツール」>「データ関数を登録」を選択し「スクリプト」に次のコードを記載して下さい。 aテーブルを2つに分けカラム名をそろえた上で引き算をしています。

df_1 = a.iloc[:, :32]
df_2 = a.iloc[:, 32:]
df_1.columns = list(range(32))
df_2.columns = list(range(32))
ret = df_1 - df_2

入出力設定

今回は出力パラメータだけでなく、入力パラメータも設定する必要がありますので、「パラメータの入力」タブで「追加」を押して、aを定義します。

また、「出力パラメータ」で計算したretを定義します。複数カラムありますので「タイプ」はテーブルにします。

計算の実行

「実行」ボタンを押すと入力と出力のパラメータを設定する画面が表示されます。

実行時の設定

入力はaテーブルを渡しますので、カラムを選択して全カラムを指定して下さい。

出力は元のaテーブルに結果カラムとして追加したいので「カラム」を選択してください。

別に結果テーブルとして保存したい場合は「データテーブル」を選択するとretというテーブルが新規作成されます。

結果として0(2)などの新規カラムが32個追加されます。

今回は簡単に引き算にしましたが、これ以外に様々な集計方法も設定できます。スクリプトを記載する事で柔軟なデータ変換が可能になります。

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