Tableau PrepでPythonスクリプトを使用する方法を紹介します(第2回)
お待たせしました。
「Tableau PrepでPythonスクリプトを使用する方法のご紹介」の第二回目になります。
今回はいよいよ「Prepへのスクリプトの組み込み」について説明いたします。
これによりPrepだけでは実行できなかった処理を行うことができるようになります。
Python利用するための環境整備がまだの方は前回記事「環境整備(Pythonサーバの実装と連携)」をご参照ください。
Pythonスクリプトの作成
例をとして、以下のユーザーIDを暗号化するスクリプトを作成します。
ここではファイル名を「Prepで暗号化用のスクリプト.py」とします。
import hashlib
import pandas as pd
def Func_Hash(df):
df['XXXXXX__暗号'] = df['XXXXXX'].apply(lambda x: hashlib.sha256(x.encode()).hexdigest())
return df
def get_output_schema():
return pd.DataFrame({
'XXXXXX' : prep_string (),
'XXXXXX__暗号' : prep_string ()
})
また、データは以下の通り作成します。
今回は.xlsx形式でデータを作成し、ファイル名は「ID.xlsx」とします。
ID |
A12345678 |
フローへスクリプトの追加
スタートメニューから「Anaconda Powershell Pronmpt」を右クリックします。
① TabPyサーバーを起動します。
「管理者として実行する」をクリックします。
"tabpy"を入力して実行します。
最後にポート「Web server listening on port 9004」と表示されることと、それ以前にERRORが出ていないことを確認します。
② フローへスクリプトを追加します。
Tableau Prepを開き、[接続の追加] ⊕ボタンをクリックします。
作成したExcelファイル「ID.xlsx」を読み込みます。
⊕ボタンをクリックし、[スクリプト]を選択します。
接続タイプ:Tableau Python(TabPy)Server
ファイル名:Prepで暗号化用のスクリプト.py (準備したスクリプトファイル)
関数名:Func_Hash
※関数名はスクリプトに引用された関数(4行目)を入力します。
import hashlib
import pandas as pd
def Func_Hash(df):
df['XXXXXX__暗号'] = df['XXXXXX'].apply(lambda x: hashlib.sha256(x.encode()).hexdigest())
return df
def get_output_schema():
return pd.DataFrame({
'XXXXXX' : prep_string (),
'XXXXXX__暗号' : prep_string ()
})
暗号化された結果は以下となります。
以上でPrepでPythonスクリプトを使用することが可能になります。
Pythonを学習するというコストはかかりますが、暗号化以外にもPrepだけではできなかった様々な処理を行うことができるようになりますので、ぜひ挑戦していただければと思います。
サンプルワークフローダウンロード
※Anaconda Powershell Pronmptからtabpyを起動後に実行してください。