フィールド名から接頭辞/接尾辞を除外するスクリプトをBobに作らせる
本記事は、逆引き7-24と9-9を組み合わせ、2026年3月24日にリリースされたIBM Bobを活用して作成されています。
1.想定される利用目的
・[フィルター]ノードで列名の接頭辞/接尾辞の手動削除を効率化する
2.サンプルストリームのダウンロード
ストリーム
3.サンプルストリームの説明
a.データは以下の通りです。
b.[フィルター]ノードを編集します。この時点ではフィールド名(列名)は変更していません。
完成したスクリプトを実行する
Modelerのメニュー>ツール>ストリームのプロパティ>実行タブを開きます。赤枠のボタンを押します。
このスクリプトをどのように作成したかは後述します。
先ほど確認したbがスクリプトによって更新されました。
[テーブル]を実行します。
IBM Bobを使ったスクリプトの作成手順
冒頭aで出力したテーブルの1行目をハイライトして[編集]から[フィールドと一体のコピー]を選択します。
メモ帳に貼り付けて、値はカットして以下のようにプロンプトを作成します。
以下のPythonの構文は列名[variable_バッグ01_value_Max]を[バッグ01]に変更するように指示したものです。
node.setKeyedPropertyValue("new_name", u"variable_バッグ01_value_Max", u"バッグ01")
これに従い他の列名もリストしますので名称変更するコードを完成させてください。
コードの冒頭に以下の2行をそのまま挿入してください
stream = modeler.script.stream()
node = stream.findByType("filter", None)
列名
variable_バッグ01_value_Max variable_バッグ02_value_Max variable_バッグ03_value_Max variable_バッグ04_value_Max variable_バッグ05_value_Max variable_バッグ06_value_Max variable_バッグ07_value_Max variable_バッグ08_value_Max variable_バッグ09_value_Max variable_バッグ10_value_Max variable_化粧品01_value_Max variable_化粧品02_value_Max variable_化粧品03_value_Max variable_化粧品04_value_Max variable_化粧品05_value_Max variable_化粧品06_value_Max variable_化粧品07_value_Max variable_化粧品08_value_Max variable_化粧品09_value_Max variable_化粧品10_value_Max variable_婦人服01_value_Max variable_婦人服02_value_Max variable_婦人服03_value_Max variable_婦人服04_value_Max variable_婦人服05_value_Max variable_婦人服06_value_Max variable_婦人服07_value_Max variable_婦人服08_value_Max variable_婦人服09_value_Max variable_靴01_value_Max variable_靴02_value_Max variable_靴03_value_Max variable_靴04_value_Max variable_靴05_value_Max variable_靴06_value_Max
Bobのプロンプトにペーストして実行します。
出来上がったスクリプトは以下の通りです。
stream = modeler.script.stream()
node = stream.findByType("filter", None)
# バッグ (01-10)
node.setKeyedPropertyValue("new_name", u"variable_バッグ01_value_Max", u"バッグ01")
node.setKeyedPropertyValue("new_name", u"variable_バッグ02_value_Max", u"バッグ02")
node.setKeyedPropertyValue("new_name", u"variable_バッグ03_value_Max", u"バッグ03")
node.setKeyedPropertyValue("new_name", u"variable_バッグ04_value_Max", u"バッグ04")
node.setKeyedPropertyValue("new_name", u"variable_バッグ05_value_Max", u"バッグ05")
node.setKeyedPropertyValue("new_name", u"variable_バッグ06_value_Max", u"バッグ06")
node.setKeyedPropertyValue("new_name", u"variable_バッグ07_value_Max", u"バッグ07")
node.setKeyedPropertyValue("new_name", u"variable_バッグ08_value_Max", u"バッグ08")
node.setKeyedPropertyValue("new_name", u"variable_バッグ09_value_Max", u"バッグ09")
node.setKeyedPropertyValue("new_name", u"variable_バッグ10_value_Max", u"バッグ10")
# 化粧品 (01-10)
node.setKeyedPropertyValue("new_name", u"variable_化粧品01_value_Max", u"化粧品01")
node.setKeyedPropertyValue("new_name", u"variable_化粧品02_value_Max", u"化粧品02")
node.setKeyedPropertyValue("new_name", u"variable_化粧品03_value_Max", u"化粧品03")
node.setKeyedPropertyValue("new_name", u"variable_化粧品04_value_Max", u"化粧品04")
node.setKeyedPropertyValue("new_name", u"variable_化粧品05_value_Max", u"化粧品05")
node.setKeyedPropertyValue("new_name", u"variable_化粧品06_value_Max", u"化粧品06")
node.setKeyedPropertyValue("new_name", u"variable_化粧品07_value_Max", u"化粧品07")
node.setKeyedPropertyValue("new_name", u"variable_化粧品08_value_Max", u"化粧品08")
node.setKeyedPropertyValue("new_name", u"variable_化粧品09_value_Max", u"化粧品09")
node.setKeyedPropertyValue("new_name", u"variable_化粧品10_value_Max", u"化粧品10")
# 婦人服 (01-09)
node.setKeyedPropertyValue("new_name", u"variable_婦人服01_value_Max", u"婦人服01")
node.setKeyedPropertyValue("new_name", u"variable_婦人服02_value_Max", u"婦人服02")
node.setKeyedPropertyValue("new_name", u"variable_婦人服03_value_Max", u"婦人服03")
node.setKeyedPropertyValue("new_name", u"variable_婦人服04_value_Max", u"婦人服04")
node.setKeyedPropertyValue("new_name", u"variable_婦人服05_value_Max", u"婦人服05")
node.setKeyedPropertyValue("new_name", u"variable_婦人服06_value_Max", u"婦人服06")
node.setKeyedPropertyValue("new_name", u"variable_婦人服07_value_Max", u"婦人服07")
node.setKeyedPropertyValue("new_name", u"variable_婦人服08_value_Max", u"婦人服08")
node.setKeyedPropertyValue("new_name", u"variable_婦人服09_value_Max", u"婦人服09")
# 靴 (01-06)
node.setKeyedPropertyValue("new_name", u"variable_靴01_value_Max", u"靴01")
node.setKeyedPropertyValue("new_name", u"variable_靴02_value_Max", u"靴02")
node.setKeyedPropertyValue("new_name", u"variable_靴03_value_Max", u"靴03")
node.setKeyedPropertyValue("new_name", u"variable_靴04_value_Max", u"靴04")
node.setKeyedPropertyValue("new_name", u"variable_靴05_value_Max", u"靴05")
node.setKeyedPropertyValue("new_name", u"variable_靴06_value_Max", u"靴06")
# Made with Bob
注意事項
一度きりの列名変更であれば、Modelerを介さずに Bob に直接ファイルを書き換えさせた方が効率的です。ただし Modeler では、列展開や集計を繰り返す過程で、意図せず列名に接頭辞・接尾辞が付与されることがあります。そのため、本記事ではプロセスの中で安全に対処する方法として、この手順を紹介しています。
4.参考情報
フィールド名(列名)を生成AIとスクリプトで一括変更する
フィールド名(列名)から接頭辞/接尾辞を除外する
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)








