1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フィールド名から接頭辞/接尾辞を除外するスクリプトをBobに作らせる(SPSS Modeler データ加工逆引き9-29)

1
Last updated at Posted at 2026-04-07

フィールド名から接頭辞/接尾辞を除外するスクリプトをBobに作らせる

スクリーンショット 2026-04-07 13.17.41.png

本記事は、逆引き7-24と9-9を組み合わせ、2026年3月24日にリリースされたIBM Bobを活用して作成されています。

1.想定される利用目的

・[フィルター]ノードで列名の接頭辞/接尾辞の手動削除を効率化する

2.サンプルストリームのダウンロード

ストリーム

3.サンプルストリームの説明

スクリーンショット 2026-04-07 13.19.34.png

a.データは以下の通りです。

スクリーンショット 2026-04-07 13.20.32.png

b.[フィルター]ノードを編集します。この時点ではフィールド名(列名)は変更していません。

スクリーンショット 2026-04-07 12.56.28.png

完成したスクリプトを実行する

Modelerのメニュー>ツール>ストリームのプロパティ>実行タブを開きます。赤枠のボタンを押します。
このスクリプトをどのように作成したかは後述します。

スクリーンショット 2026-04-07 13.43.01.png

先ほど確認したbがスクリプトによって更新されました。

スクリーンショット 2026-04-07 13.44.16.png

[テーブル]を実行します。

スクリーンショット 2026-04-07 13.21.16.png

IBM Bobを使ったスクリプトの作成手順

冒頭aで出力したテーブルの1行目をハイライトして[編集]から[フィールドと一体のコピー]を選択します。

スクリーンショット 2026-04-07 13.47.34.png

メモ帳に貼り付けて、値はカットして以下のようにプロンプトを作成します。

プロンプト


以下の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のプロンプトにペーストして実行します。

スクリーンショット 2026-04-07 12.52.11.png

出来上がったスクリプトは以下の通りです。

Python

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 逆引きストリーム集(データ加工)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?