デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - 総入れ替え! コラム名を挿入する ~Insert Column Header~

 

f:id:makkynm:20201220093056p:plain

 

 

はじめに

抽出あるんなら挿入もあるだろ!!ということで今回はコラム名を一括で入れ込みましょう。これを使えば、コラム名を総入れ替えすることが可能になります!

 

 今回のテーマ ~Insert Column Header~

Column Renameを使わず、マッピングテーブルからコラム名を入れ替えていきましょう。

f:id:makkynm:20200614235733p:plain

Insert Column Header

 

覚えてほしいこと

Lookup Columnに現コラムリスト

Value Columnに新コラムリスト

 

やりたいこと

社員表のコラム名を、英語名称に一括変換してみたいと思います。

コラム名のマッピングは、Table Creatorで作りましたね。

f:id:makkynm:20200615000821p:plain

やりたいこと - コラム名を総入れ替え

Insert Column Headerの使い方

下のInputから来る、コラム名のマッピングテーブルをもとにして、コラム名を一括差し替えすることができるNodeです。

Workflow

f:id:makkynm:20200614235733p:plain

Workflow - Insert Column Header

Workflowは下記からダウンロードできます。

kni.me

Confirm - Before After

社員表のコラム名がマッピングテーブルに従って、新コラム名(英語名称)に差し変わっていることが分かります。

f:id:makkynm:20200615001400p:plain

Confirm - Insert Column Header

Configure

 さて設定を見ていきましょう。

f:id:makkynm:20200615002055p:plain

Configure - Insert Column Header

Step1 - Lookup Column / Value Column 現コラムと新コラムのマッピング

まずは、下のInputから入ってきたコラムマッピングを認識させます。

Lookup Columnに現コラムリスト

Value Columnに新コラムリスト

を設定してください。

f:id:makkynm:20200615002454p:plain

Configure - Step1 コラムマッピング

Step2 - Fail if... コラムリストが足りなかった場合の設定

チェックを入れると、現コラムリストに上のInputからくるコラム名がすべて入っていなかった場合、実行失敗にすることができます。デフォルトではチェックが入っています。

チェックを外すと、現コラムリストにないコラムがあっても差し替えすることなくそのまま実行してくれます。

 

 ちょっと一言

こんなときにOK、こんなときにNG 

さて、コラムマッピング(現コラムリストと新コラムリストの対応表)を作るとき、どんなものだとOKでどんなものだとNGなのかを実験してみたいと思います。4種類やってみました。結果は下図のとおりです。

f:id:makkynm:20200615003041p:plain

こんな時にOK

f:id:makkynm:20200615003055p:plain

こんな時にNG

 

つまり、コラムマッピング(現コラムリストと新コラムリストの対応表)には、重複さえなければOKということですね!

多くてもOKです!少ない場合はStep2での設定が必要です。

 

コラムマッピングが足りなかったとき

さて、先ほど、一行少なくしたときは▲と書きました。これはStep2のチェックマークに依存するからです。一行少なくしたときで、Step2 Fail if...にチェックが入っている場合とそうでない場合の比較をしてみましょう。

一行少ない・Fail if...にチェック

 チェックを入れると、一個足りないだけでエラーが発生します。

f:id:makkynm:20200615003706p:plain

コラムマッピングが少ない時のエラー

「No name assignment for column "入社日"」と書かれているので、入社日のマッピングが見つからなかったぞ!って言ってますね。

一行少ない・Fail if...にNOチェック

さて、チェックを入れないとどうなるのでしょうか。

実行は成功します。Confirmを見ると、マッピングが消えているところについては元コラムの名前が入っていることが分かります!

f:id:makkynm:20200615003958p:plain

Confirm - 一行少ない・Step 2 NO チェック

 

コラムマッピングが重複しているとき

重複がある場合は、下図のようなエラーが発生します。

「Multiple occurrences of lookup key "入社日"」とあるので、入社日って値が複数回検知されて一意じゃなかったんだけどどういうこと?って言われています。

f:id:makkynm:20200615004151p:plain

コラムマッピングが重複しているとき

おわりに

たまに使うコラム名一括変換Nodeでした!結構便利なのでぜひ皆さん使ってみてください!

 

 

 

※過去記事にも余談コーナーちょいちょい載せていきます。コロナの収穫ですかね笑

余談

入れ替わりといえば、おススメ映画は「天使のくれた時間」ですね!

若かりし時代に最愛の恋人を捨て、成功を収めた一流ビジネスマンとして超リッチピープルな人生を過ごしていたのですが、ある日のクリスマスの夜目が覚めると、ビジネスマンとしてではなくて、最愛の恋人と過ごす毎日に変わってしまいます。

極端に言えば、仕事100%な人生と、家庭100%な人生、どちらが大切なんでしょうか?と問いかけてくるような映画です。

私は今のところ仕事をしすぎてしまう派なので、バランスを考えさせられるおススメな映画です。

天使のくれた時間 (字幕版)

天使のくれた時間 (字幕版)

  • 発売日: 2013/11/26
  • メディア: Prime Video
 
天使のくれた時間(吹替版)

天使のくれた時間(吹替版)

  • 発売日: 2016/05/23
  • メディア: Prime Video
 

 

www.youtube.com

 

参考リンク