Tableau Prepで半角カナを全角カナに変換(Pythonを利用)

2020/03/08 18:32 Shingo 0 Comments

Tableau Prep Builderはデータクリーニングのために様々なクリーニング作業ができますが、「半角カナから全角カナに変換」というメニューは有りません(2020年2月現在)。今回のブログでは、前回作ったPython環境を使って、半角全角変換処理を実施したいと思います。



なお、今はまだTableau Prep Builderだけでは半角全角変換はできませんが、こちらの投票サイトより機能リクエストができるので、是非標準機能として搭載されるよう皆さん投票をお願いします。

では手順をご紹介します。

Tableau Prepを起動し、半角カナが含まれているファイルやデータベースを入力として定義します。

今回はサンプルスーパーストアのデータで、製品名の一部を半角にしてみました。半角にしたのは「パック」と「コンロ」だけで、その他のカナは全角です。











Pythonを呼び出すには、「スクリプト」を配置します。+をクリックして「スクリプト」を選択します。最初は赤い!アイコンが出ますが、気にせず設定を続けます。
「接続タイプ」の「Tableau Python(Tabpy) Server」を選択します。つぎに「サーバー」の「Tableau Python(Tabpy) Serverに接続」ボタンをクリックします。




「サーバー」にlocalhost、「ポート」に9004を入力します。ユーザやパスワードは空欄でかまいません。「サインイン」ボタンをクリックします。






スクリプトを準備します。下記青字を全部コピーし、メモ帳やエディタに貼り付けて保存してください。今回は「製品名」というフィールドを半角から全角に変換するスクリプトを用意しました。単純に1列のデータで半角を全角に変更するだけなら、2箇所あるdf['製品名']をご自身のデータの列名に変更するだけでOKです。任意のフォルダに名前をつけて保存します。今回私はc:\python\hankaku_zenkaku.pyという名前で保存しました。

import mojimoji
def hankaku_zenkaku(df):
    df['製品名'] = df['製品名'] .apply(mojimoji.han_to_zen, ascii=False, digit=False)
    return df



最後にPythonのスクリプトを参照します。先程保存した.pyのファイルを参照し、「関数名」には先程のスクリプトの関数名、defの後の「hankaku_zenkaku」を入力します。









すべてを入力すると自動的にスクリプトが実行され、アイコンの上の!マークが消えます。「製品名」の値を確認すると、もう全角に変換されています。





今回のテストでは少し意地悪に「パック」という文字で変換してみました。半角カナは「パ」等の文字を2文字にしてしまうため、それを全角に変換するのは処理として難しいのですが、ちゃんと1文字の「パ」に変換してくれていました。

半角全角の変換には「mojimoji」を利用しました。前回の手順でpython上にmojimojiと、mojimojiを動作させるために必要なものをインストールしていました。そうするとスクリプトを数行用意するだけで文字の変換をPythonに実行させることができました。

今回はTableau Prep BuilderとPythonを連携させ、半角カナを全角カナに変換する処理を作りました。古いシステムからデータを取ったら半角カナばっかりで困っている、という方、クリーニングのフローの途中で半角を全角に変換する、などに是非活用してみてください。



0 コメント: