-->

【KNIME】(ナイム) 重複行をまとめ、列方向にも分類分けするならPivoting(ピボット)!

2022/06/09

Knime

t f B! P L

この記事の概要

KNIME(ナイム)のPivoting(ピボット)を解説。
このノードは重複する行を1つにまとめることができるノード。
重複する行を1つにまとめると同時に合計値(SUM)計算や平均値計算なども可能です
GroupBy(グループバイ)と似ていますが
Pivoting(ピボット)は列(カラム)の方向についてもデータをまとめることができます。
大量のデータを一気にまとめ上げることができます!


Pivoting(ピボット)ノードの紹介

Piviotingノードの使い方を紹介する前に
似たようなノードなGroupByというものがあります。

PivotingとGroupByは似たような使い方ができます。
シンプルに重複行列をまとめたい場合はGroupByのほうが適しています。

GroupByの使い方は下記のページをご覧ください。
KNIME(ナイム)のGroupBy(グループバイ)を解説。 このノードは重複する行を1つにまとめることができるノード。 重複する行を1つにまとめると同時に合計値(SUM)計算や平均値計算なども可能です。 大量のデータを一気にまとめ上げることができます!


Pivoting(ピボット)ノードの使い方

Pivotingを使うと重複したテーブルデータをまとめ上げることができます。
任意の項目については列方向に分けることができます。

下記にPivotingの入出力結果を示します。



Pivotingには出力が3つありますが、基本的には一番上の出力を使います。
出力の違いについては本記事の文末に書いております。


重複する行を1つにまとめる

例として下記のような表を作ってみました。
伝票処理表?のようなものです(*'ω'*)

取引先と伝票番号に対して取引内容と日時、金額が書かれています。
今気づきましたが下記の表の書き方の場合は伝票番号ではなく、取引先番号ですね…。
スミマセン…。

複数の取引先と何回も取引していますね。
例えばこの表の「初芝産業」の取引が何回かありますが、
初芝産業の「コールサービス」の合計金額はいくらなんでしょうか?

これをPivotingノードを使用して取引先ごとにまとめていこうと思います。


ワークフローは下記です。

Excel Reader(エクセルリーダー)でファイルを読み込んでPivotingでまとめます。

String Manipulationは本来不要です。
金額の列がDouble型で詠み込まれたのをInt型に戻しているだけなので
無くてもOKです。



Configure(設定)-Groups画面の解説

Configure画面(設定)について解説します。
まずはこのGroups画面から解説し、画面は下記のようになります。





それぞれの項目について解説していきます。

Available column(s):
ここに表示されている列(カラム)のデータが集計されます。
なのでここは合計値や平均値や出現回数など
関数によって求めたい数字が含まれる列を選択します。
今回は金額と日時、内容を集計します。


Groups column(s)
ここで選択されている列(カラム)の内容ごとにデータをまとめます
今回は伝票番号(取引番号)と取引先ごとにデータをまとめます。

Configure(設定)-Pivot画面の解説

Pivot画面では列方向にまとめる項目のカラムを選択し、右側の欄に移動します。
集計する項目や行方向にまとめる項目は左側の欄に記入します。




今回は下記のように設定しました。

金額→合計(Sum):取引先ごとの合計金額を算出

Configure(設定)-Manual Aggregation 画面の解説

さきほどAvailable column(s)で選択した列(カラム)がここに追加されています。
ここに表示されている列(カラム)を関数を使って集計します。

集計したい列(カラム)を選択し「add」をクリックします。
すると右側の項目に選択した列(カラム)が追加されます。

Aggregation(click to change)の欄をクリックすると
集計方法がずらっと出てくるので、希望の集計方法を選択します。


集計方法(Aggregation)の種類

カラムの計算方法についてよく使う項目を説明します。


List:リスト形式で集計します。
文字列をすべて1行で集計し[]で囲まれたカンマで区切られたデータで出力します。
List(sort)はアルファベット順に項目を並び替えてくれます。

Maximum:集計するデータの中で最大値を表示します。

Minimum:集計するデータの中で最小値を表示します。

Missing value count:データの中の欠損値をカウントしその個数を表示します。

First:データの最初の文字列、数字を表示します。

Last:データの最後の文字列、数字を表示します

Percent:同じデータが全体に占める割合をパーセントで表示します。

SUM:データの合計値を算出します。(Int/Double/Long型のみ)

Mean:データの平均値を算出します。(Int/Double/Long型のみ)

Median:データの中央値を算出します。(Int/Double/Long型のみ)

Standard devitation:データの標準偏差を算出します。(Int/Double/Long型のみ)

Mean absolute deviation:データの平均絶対偏差を算出します。(Int/Double/Long型のみ)

Median absolute deviation:データの中央絶対値偏差を算出します。(Int/Double/Long型のみ)


3つの出力ポートについて

基本的にPivioting(ピボット)で使用する出力は一番上の出力だけです。
真ん中の出力はGroupByと同様の出力結果となります。
一番下の出力は列名ごとの合計が集計されています。

図示すると下記のようになります。


あとがき

いかがでしたでしょうか?
Pivotingノードは複雑なデータ類を一括でまとめることができるので
すごく便利です。
それでは!



このブログを検索

注目の投稿

【KNIME】(ナイム)最強の表計算マクロソフト!KNIME(ナイム)のご紹介!使い方は?できることは?

この記事の概要 KNIME(ナイム)は表計算、マクロ動作を主機能とするフリーソフト。 エクセルと同等の機能を有しており、行列計算やグラフ描画可能。 ノードと呼ばれる箱を線で繋ぐことで計算処理を行う事が出来るため 関数名などを覚える必要はなく、処理の内容が分かりやすい。 Pytho...

スポンサー広告

スポンサー広告

QooQ