デジタル推進課

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

KNIME - グループで集計する ~GroupBy~

f:id:makkynm:20201219192337p:plain

 

 

はじめに

次に超頻出NodeのGroupByについて解説します。このNodeは合計値や平均値を求めるだけでなく、セルの結合をさせたり上のセルの値をコピーしたりと応用次第で使用用途がかなり広がりますが、今回は一番使いそうな合計値を求めることにします。

 

 

今回のテーマ ~GroupBy~

今回は前回のデータを使って残業時間の合計値を色々なパターンで計算してみます。Excel でいうと、ピボットテーブルでできる集計のことです。

f:id:makkynm:20200425164321p:plain

GroupBy

Workflowはこちらからダウンロードできます。

hub.knime.com

 

覚えてほしいこと

ピボットテーブルの行をGroup Setting

値をAggregationで指定

 

やりたいこと

Excelのピボットテーブルでいう、行と値を使用することでできる集計機能をKNIMEで表現します。

f:id:makkynm:20200425170628p:plain

やりたいこと

 

GroupBy の使い方

Workflow

f:id:makkynm:20200425171103p:plain

GroupBy

Confirm - Before After

Confirmの結果を先に見てみましょう。Excel ピボットテーブルで集計するように、社員番号(及び名前)ごとの合計残業時間が計算されていることが分かります。

f:id:makkynm:20200425171331p:plain

GroupBy

 

Configure

今回も大きく分けて4Stepあります。

f:id:makkynm:20200425172132p:plain

GroupBy Configure - Step1

f:id:makkynm:20200425172156p:plain

GroupBy Configure - Step 2, 3, 4

 

Step1 - Group setting

まず最初に、グループを指定します。今回は各社員ごとの残業時間を算出したいので、「社員番号」と「名前」をGroup columnの緑の枠に入れました。

この設定はピボットテーブルでいう”行”に相当します。

 

Step2 - Aggregation column setting 

次に、どのコラムを計算させるかを指定します。ピボットテーブルでいう"値"に相当します。

まずは、Manual Aggregationのタブをクリックします。すると、選択可能なコラム一覧がAvailable Columnsに出てきます。

このコラム一覧から、計算させたいコラム(今回は"残業時間[h]")をダブルクリックするか、1クリックしてAddのボタンを押せば、計算対象に指定できます。

 

Step3 - Aggregation setting

実際に計算させる方法をここで指定します。Aggregationの部分をクリックすると、計算方法が指定できます。今回は合計を求めたいので、"Sum"を指定しました。

f:id:makkynm:20200425175735p:plain

Configure - step3 Aggregation setting

このプルダウンから出てくる設定ですが、指定したコラムのデータ型によって変わります。今回は数字(Integer)だったので、Sumが出てきましたが、他のデータ型だと選択できる種類が少なかったりします。

Step4 - Column Naming

計算させたコラムの名前の設定です。同じコラムに対して複数計算をさせない限り(一度で合計と平均の2コラム出力する)、"Keep original name(s)"「元のコラム名を維持する」でいいと思います。

複数計算させる場合、他の2つのどちらか好みの方を指定すればいいです。

"Aggregation method (column name)" --> 「Sum (残業時間[h])」

" column name (Aggregation method)" --> 「残業時間[h] (Sum )」

f:id:makkynm:20200425180320p:plain

Column Naming

 

たったこれだけで終了です!

 

ちょっと一言

Tips1 - Aggregationの選択方法

上では触れませんでしたが、計算するコラムを選択するには上で使用した一つ一つコラムを選択する、"Manual Aggregation"のほかに2種類あります。

"Pattern Based Aggregation" --> コラム名の規則でコラムを選択する

"Type Based Aggregation" --> データ型でコラムを選択する

コラム数が多い時や、コラム名が変化するときに使えますね。(日付がコラム名になっている場合等)

Tips2 - 計算させたいコラムの複数選択

上で少しふれたとおり、同じコラムを複数回選択し、合計・平均値などを一度に求めることが可能です。方法はAvailable Columnsで何度もクリックするだけです。

この方法を使うときは名前の設定で「Keep original name(s)」は使えないので、他を選びましょう。

f:id:makkynm:20200425181619p:plain

同じコラムの複数選択

f:id:makkynm:20200425181731p:plain

Confirm

 

Tips3 - 代表的なAggregation の種類

代表的なAggregationの種類について、ここで触れます。

Aggregation 意味 補足
Concatenate 値をくっつける くっつけ方は、Value Delimiterで指定可能。
\nを入力すると改行することができるため、
セルの結合で使用可能
Count カウント 出勤日に指定すれば、出勤日が計算できる
First 最初の値 くっつけるとき、最初に出てきた値を返す
欠損値を上のセルからコピーしたいときに使ったりする
Last 最後の値 くっつけるとき、最後に出てきた値を返す
欠損値を下のセルからコピーしたいときに使ったりする
Maximum 最大値  
Minimum 最小値  
Mean 平均値  
Mean absolute deviation 平均絶対偏差 絶対偏差の平均。 基準値と測定値の差の絶対値の平均値。
Median 中央値  
Median absolute deviation 中央絶対偏差 絶対偏差の中央値
Missing value count 欠損値カウント  
Mode 最頻値  
Percent パーセント 全体の行数に対して、カウントの値が示す%
Standard deviation 標準偏差 データのばらつきの大きさを表わす指標
各データの値と平均の差の2乗の合計を、データの総数 n で割った値の正の平方根
Sum 合計値  

 

おわりに

GroupByを習得すればかなりのマニュアルレポートや、普段のデータ処理が

かなり楽になるのではないでしょうか。Try&Errorで触れば触るほど、どのような時に使えばいいのかが分かってきます。

変に触っても壊れませんので、ぜひ何度も失敗してみてどうすればうまく実行できるのか何度も試してみてください。

 

 

 

 

余談

 新しいことを学ぶ方々、特に新入社員に見てほしいのは、「プラダを着た悪魔」です。すごく有名な映画だと思います。新卒で入社したのがド・ブラックな女社長のアシスタントという職種という設定で、最初自分の中で持っていた間違ったプライドのようなものが修正された瞬間に、劇的な成長へとつながっていくというサクセスストーリーを描いた映画です。新入社員から見てこれは違うだろ、馬鹿らしいと思いながらも、少し素直になって見方・とらえ方を変えてみると物事の本質に気付けて自分の成功につながるよと言われているような気がするメッセージ性が高くかつ感動する映画です。

 

プラダを着た悪魔 (字幕版)

プラダを着た悪魔 (字幕版)

  • 発売日: 2013/11/26
  • メディア: Prime Video
 
プラダを着た悪魔  (吹替版)

プラダを着た悪魔 (吹替版)

  • 発売日: 2013/11/26
  • メディア: Prime Video
 

 

www.youtube.com

 

参考リンク