Excelからスクリプトを生成させてフィールド作成に一括反映する
1.想定される利用目的
・数値データから非常に多くのカテゴリを定義しなくてはならない
・カテゴリの定義の可読性を確保したい
・カテゴリの定義をExcelで管理したい
2.サンプルストリームとExcel定義体のダウンロード
ストリーム
https://github.com/yoichiro0903n/blue/raw/refs/heads/main/excel2script.str
Excel
https://github.com/yoichiro0903n/blue/raw/refs/heads/main/Excel2pythonxlsx.xlsx
3.サンプルストリームの説明
a.データは以下の通りです。Na(ナトリウム)の値をいくつかのカテゴリに分割します。
b.[フィールド作成]ノードを編集します。完成形になっていますのでこの後一度設定を消去します。
[デフォルト値]をブランクに、全ての設定値と条件をクリアします。
Excelで設定した値の定義からスクリプトをコピーする
Excel2pythonxlsx.xlsxをダウンロードして青いセルをコピーします。
このシートはグリーンと黄色のセルを定義すると、自動的にブルーの部分にスクリプトが作成されます。Excelなので行を簡単に増やせます。
stream = modeler.script.stream()
node = stream.findByType("derive", "NaRank")
node.setPropertyValue("result_type", "Set")
node.setPropertyValue("set_default", "D")
node.setKeyedPropertyValue("set_value_cond", "Cm" , "Na<0.55")
node.setKeyedPropertyValue("set_value_cond", "Bm", "Na >= 0.55 and Na < 0.65")
node.setKeyedPropertyValue("set_value_cond", "A", "Na >= 0.65 and Na < 0.75")
node.setKeyedPropertyValue("set_value_cond", "Bp", "Na >= 0.75 and Na < 0.85")
node.setKeyedPropertyValue("set_value_cond", "Cp" , "Na >=0.85")
Modelerのメニュー>ツール>ストリームのプロパティ>実行で以下のようペーストして、赤枠の[実行]ボタンを押します。
スクリプトにより、設定が一括反映されました。
[テーブル]を実行します。
注意事項
以上と未満の定義に変更がある場合には、関数を変更してください。複数のフィールド作成ノードがあることを想定して、NaRankという名称はストリーム上で設定しています。スクリプトでノードの生成から名称付与をすることも可能です。
4.参考情報
フィールド作成ノードを制御するスクリプトの詳細
pythonコードでフィールド作成をする際に必要な構造化プロパティー
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)








