ウィンドウでグループ化¶
Data Prepウィンドウ関数は、特定の機能を実行するために、ウィンドウと呼ばれる行のセットをグループ化できるようにするツールのセットです。
ウィンドウの操作¶
ウィンドウを操作するには、プロジェクトツールバーのウィンドウツールにカーソルを合わせ、集計、シフト、またはランクツールを選択します。
備考
ウィンドウツールが表示されない場合、システム管理者に連絡して、このオプションを有効にするよう依頼してください。
集計ツールの操作¶
集計ツールを使用すると、特定の関数を計算する目的で行のセットをグループ化できます。Data Prepでは、数式を記述する代わりに、ポイントアンドクリック操作で計算が作成されます。
Data Prepでは、ウィンドウは計算に参加する行のセットとして定義されます。ウィンドウは次のように識別できます。
- 固定ウィンドウ:1つ以上の列に共通する近似値に基づく行のグループ化。
- スライディングウィンドウ:現在の行を基準とした行のグループ化(ローリングまたは移動関数)。
備考
GroupByの集計は、ウィンドウ集計関数とは異なります。主な違いの1つは、GroupByでは行の数が減って集計行の値のみが残りますが、ウィンドウ関数ではデータセットの行ごとに集計されます。
ウィンドウ集計の定義¶
-
出力列を作成します。
この新しい列のプレビューは、関数の実行対象として選択した列の横に表示されます。
- 関数タイプ:ドロップダウンに[Average(平均)]、[Sum(合計)]、[Count(カウント)]、[First(最初)]、[Last(最後)]、[Min(最小)]、[Max(最大)]、[Median(中央値)]が表示されます。デフォルトは平均です。
- 計算を行う列を選択します。[Average(平均)]、[Sum(合計)]、[Min(最小)]、[Max(最大)]、[Median(中央値)]の列タイプは数値である必要があります。[Count(カウント)]、[First(最初)]、[Last(最後)]の列タイプは任意です。
- 出力列に名前を付けます。
-
行をグループ化してソートします。
- Group by(グループ化条件):ドロップダウンから、行のグループ化基準となる値を含む列を選択します。少なくとも1つの列を選択しますが、列の数を増やしたり減らしたりしてウィンドウのサイズを調整できます。列の集計行は昇順で表示されます。
- Sort by(ソート基準)(オプション):ドロップダウンから列を選択して、集計内での行のスタック順序を定義します。選択した列の青い矢印をクリックすると、値の昇順ソートと降順ソートを切り替えることができます。これが特に重要になるのは、ソートの適用後に最初/最後が選択される[First(最初)]関数と[Last(最後)]関数の場合です。
-
関数の境界を設定します。
- Top of window(ウィンドウ上限):集計の各行で、関数が属するウィンドウの最初の行の値から関数が開始します。
- Bottom of window(ウィンドウ下限):集計の各行で、関数が属するウィンドウの最後の行の値で関数が終了します。
- Current row with offset of __ rows(現在の行から__行オフセット):これを上限、下限、または両方の境界として選択すると、計算対象行(現在行)を基準に変化するローリングウィンドウが作成されます。計算の開始行または終了行は、計算対象行から指定された数だけ上または下にある行になります。たとえば、開始行および終了行として現在行とオフセット0を選択すると、その現在行の単一値を基準に各行が計算されます。オフセットが-1である場合は、現在行と1つ前の行を対象に関数が計算されます。以下に例を示します。
- 選択可能なオプション:
- ウィンドウ上限からウィンドウ下限まで(固定ウィンドウ)
- ウィンドウ上限からオフセットありの現在行まで(スライディングウィンドウ)
- オフセットありの現在行からウィンドウ下限まで(スライディングウィンドウ)
- オフセットありの現在行からオフセットありの現在行まで(スライディングウィンドウ)
例¶
小売会社の売上¶
以下に示すシンプルなデータセットは、ある小売企業の地域別の売上を示しています。
ユースケース1:固定ウィンドウ¶
この会社は地域間でAverage Regional Sales(地域平均売上)を比較して、業績を比較したいと考えています。
下のイメージの設定では、行がTerritory(販売区域)を条件にグループ化され、Region(地域)を基準にアルファベットの昇順でソートされています。
ウィンドウ上限からウィンドウ下限まで境界が設定されていますので、これは固定ウィンドウです。これは、集計内の地域販売列のすべての値を使用して各行の平均が計算されることを意味します。計算に使用されるRegional Sales(地域売上)列の横に新しいプレビュー列Average Regional Sales(地域平均売上)が表示されます。
指定ウィンドウ内のすべての行で、計算された平均値が同じであることがわかります。
したがって、会社は販売地域ごとの地域の平均売上高を比較して、平均してAPAC販売地域の業績が最高で、EMEA販売地域の業績が最低であることがわかるようになりました。
会社の給与¶
以下に示すシンプルなデータセットは、ある会社の従業員の給与を示しています。
ユースケース2:スライディングウィンドウ¶
この会社では営業部門の給与を分析したいと考えており、営業部門で以前に雇用した2人の給与の平均額との比較を行います。
これを行うには、従業員を彼らの部門に基づいてグループ化し、従業員番号をソート順として使用して、雇用された順序で積み重ねます。営業部門全体の平均を求めるのではなく、各営業員とその直前に雇用した営業員の給与の平均を求めるスライディング(またはローリング)ウィンドウを作成します。ウィンドウの開始は対象従業員の1つ前の行(-1のオフセット)、ウィンドウの終了は対象従業員の行(0のオフセット)に設定します。
営業部門を見ると、ウィンドウの集計値が計算ごとに変化していることがわかります。各平均値は、前の行と現在の行に基づいています。
この情報からわかることは、以前に雇用した営業員の平均額より給与が低いのは、従業員番号7の営業員のみであるということです。
ユースケース3:スライディングウィンドウ¶
この会社は、ある部門の給与平均が時間とともにどのように変化するかを分析したいと考えています。
それには、ウィンドウ上限から始まり、その後に続く各行で拡大するスライディングウィンドウを作成します。これは、Excelで移動平均関数を作成するのと似ていますが、絶対セルを設定するために$を含む式を記述する必要はありません。
前の例のように、行を部門ごとにグループ化し、従業員番号を昇順に並べ替えます。ただし、前の例とは異なり、ウィンドウの下部が計算中の行(つまり現在の行)に関連して変化する間、上部の境界は固定された開始点として残ります。一番上の行から開始し、0のオフセットで現在行で終了するようにウィンドウを設定します。営業部門に関して作成されたウィンドウを以下に示します:
このスライディングウィンドウ関数の出力列を使用すると、時間の経過とともに、営業部門の給与平均が概して増加していることがわかります。また、この計算から興味深い傾向が見られます。これは、時間の経過とともに平均間の分散が小さくなり、給与の一貫性が高まっていることを示しています。
ユースケース4:スライディングウィンドウ¶
この会社は、どの部門の給与総額が15,000ドルを超えているかを分析するために、各部門の給与の累計総額を計算したいと考えています。
Department(部門)でグループ化し、Employee Number(従業員番号)で降順にソートすると、最近雇用した従業員が集計行の一番上に表示されます。計算対象の現在行(0でオフセット)で始まり、ウィンドウ下限で終わるスライディングウィンドウを設定します。これは、Excelで累計を作成するのと似ていますが、絶対セルを設定するために$を含む式を記述する必要はありません。
上のイメージに示すように、人事部門と研究部門の累計総額はどちらも分析基準額の15,000ドルを下回っています。しかし、営業部門の現在の給与総額は25,400ドルです。さらに調べると、給与総額がしきい値を超えた時点を確認できます。緑のウィンドウは番号4、5、および7の従業員の給与を含み、しきい値15,000ドルを下回っています。ただし、番号10の従業員が雇用されたときに、青いウィンドウが示すように、しきい値の超過が生じました。
シフトツールの操作¶
シフトツールは、参照されている元の列の隣に新しい列を作成し、設定されたセル数だけ行の値を上下にシフトします。このアクションは、SQLのLAGまたはLEADと似ています。シフトツールを使用するとき、シフトする列を指定して新しい名前を付けます。次に、オフセットする行の方向と数を定義します。グループおよびソートのフィールドを使用して、必要に応じて行の値を並べ替えることもできます。
たとえば、ある企業が毎月の売上を前月と比較する場合は、連続する月の売上を横に並べて比較できます。Shift Down(シフトダウン)関数を使用して、元の[Sales(売上)]列に基づいて1のオフセットで新しい"Previous Month"(前月)列を作成します。これで、売上値を横に並べて、計算後の列を簡単に作成して、月ごとの売上の差を定量化できます。
ランクツールの操作¶
ランクツールには、データセットに列を追加してランク(Rank)、高密度ランク(Dense Rank)、または行番号(Row Number)を示す関数が含まれています。
- Rank(ランク):同じ値を含む行が複数ある場合、それらの行のランクは同じになります。その次の行には連続しないランクが割り当てられます。たとえば、値が同じ2つのセルのランクは両方とも1になり、次点のセルのランクは3になります。Sort by(ソート基準)オプションを使用すると、ランクはソート順に基づいて割り当てられます。Group by(グループ化条件)オプションを使用すると、グループ内でランクが割り当てられ、次の行グループ内の最上位エントリに対するランクは1にリセットされます。
- Dense Rank(高密度ランク):ランクと同様に、同一値を含む複数の行には同じランクが割り当てられます。ただし、次点の一意の値を含む行に対するランクは単純な連番になり、1つ上のランクを割り当てられた行がいくつあったのかは考慮されません。たとえば、値が同じ2つのセルのランクは両方とも1になり、次点の一意セルのランクは2になります。同じソート基準とグループ化条件のルールがランク操作として適用されます。
- Row Number(行番号):この関数は、ウィンドウのソート順に基づいて、1から始まる各IDを各行に割り当てます(下のイメージ1を参照)。グループまたはソートのフィールドを使用して行の順序を変更すると、作成されるパーティションごとに1からランクが始まります(下のイメージ2を参照)。