Reshape タブ

データの形状を Wide 形式(横持ち)と Long 形式(縦持ち)の間で変換できます。分析手法に合わせてデータのレイアウトを変更する場合に使用します。

基本的な使い方

Reshape を開く

メニューバーから Data > Reshape (Wide/Long)... を選択すると、新しい Reshape タブが開きます。

Reshape タブの基本画面

画面は左側の設定パネルと右側のプレビューエリアで構成されます。設定パネル上部のタブで Wide to LongLong to Wide を切り替えます。

このページで使用するデータ

この説明では、5人の生徒の成績データ(grades.csv)を使用します。科目ごとに列が分かれた Wide 形式の CSV ファイルです。

namemathscienceenglish
Alice908588
Bob759280
Carol887895
Dave928882
Eve789590

Wide to Long(横→縦)

複数の列を1つの列にまとめます(unpivot)。各行が複数行に展開されます。

たとえば、上の成績データを「1行1科目」の形式に変換する場合に使います。変換後は次のようになります。

namesubjectscore
Alicemath90
Alicescience85
Aliceenglish88
Bobmath75
.........

この例では Variable Column Name に subject、Value Column Name に score を指定しています。デフォルトのまま実行すると、列名は variablevalue になります。

パラメータ

Dataset - 変換対象のデータセットを選択します。

ID Columns (keep as-is) - 変換前後で保持する列を選択します。展開された各行にそのまま繰り返されます。上の例では name が該当します。省略可能です。省略した場合、変換結果には Variable 列と Value 列のみが含まれます。

Value Columns (to unpivot) - 展開する列を選択します。上の例では mathscienceenglish の3列です。最低1列の指定が必要です。

Variable Column Name - 展開された列名が入る新しい列の名前を指定します。デフォルトは variable です。

Value Column Name - 展開された値が入る新しい列の名前を指定します。デフォルトは value です。

設定が完了したら Preview ボタンをクリックして結果を確認します。

Wide to Long 変換のプレビュー

Long to Wide(縦→横)

Long 形式のデータを Wide 形式に変換します(pivot)。複数行が1行にまとめられます。

Wide to Long の逆変換や、集計結果を表形式に整理する場合に使います。

たとえば、上の Wide to Long の変換結果を元の Wide 形式に戻す場合に使います。

変換前の Long 形式データ:

namesubjectscore
Alicemath90
Alicescience85
Aliceenglish88
Bobmath75
.........

Variable Column に subject、Value Column に score を指定すると、subject のユニークな値(math, science, english)がそれぞれ列になります。

変換後:

namemathscienceenglish
Alice908588
Bob759280
............

パラメータ

Dataset - 変換対象のデータセットを選択します。

ID Columns (row identifiers) - 変換前後で保持する列を選択します。同じ ID 値を持つ行が1行にまとめられます。上の例では name が該当します。省略可能です。省略すると全行が1つのグループにまとめられ、変数値が重複していなければ結果は1行になります。

Variable Column (column names) - 列名になる値を持つ列を1つ選択します。この列のユニークな値がそれぞれ新しい列になります。上の例では subject が該当します。

Value Column (cell values) - セル値として使用する列を1つ選択します。上の例では score が該当します。

ID Columns・Variable Column・Value Column のいずれにも指定しなかった列は、結果に含まれません。群分け変数などの補助列を残したい場合は ID Columns に追加してください。

Long to Wide 変換のプレビュー

プレビューと保存

Preview ボタンで変換結果を確認できます。プレビューには最大100行が表示され、結果の行数と列数も表示されます。

結果に問題がなければ Save as Dataset をクリックします。データセット名を入力して保存すると、新しい派生データセットとして利用できるようになります。

保存済みデータセットの編集

既存の Reshape データセットは編集できます。Project Lineage タブでデータセットを右クリックするか、Project Overview のデータセットのメニューボタン(⋮)から Edit Operation... を選択すると、モード・ソースデータセット・列の設定が復元された状態で Reshape が編集モードで開きます。

編集モードでは、他のデータセットやモデル、レポートがこのデータセットに依存している場合、影響を受ける項目の種類と件数が警告として表示されます。ソースデータセットを変更すると、新しいソースに同名の列がある設定は引き継がれます。同名の列がない設定は除去され、除去された列名が通知に表示されます。Preview で確認したあと Update Dataset をクリックすると変更が反映されます。このデータセットに依存する派生データセットは次にデータが必要になったとき再計算され、依存するモデルは自動的に再推定されます。

編集タブを開いてから Update Dataset をクリックするまでの間に、同じデータセットの操作が別の編集タブや Agent API など他の経路から変更されていた場合、MIDAS は保存を拒否します。先に加えられた変更を警告なく失わせないためです。編集タブを閉じて Edit Operation... を開き直すと、最新の状態から編集をやり直せます。

注意事項

  • Wide to Long で Value Columns に異なるデータ型の列を指定した場合、値列の型は組み合わせによって決まります。int64 と float64 の組み合わせは float64 に、date と datetime の組み合わせは datetime になります。数値と文字列の混在など、それ以外の組み合わせは string 型に変換されます。同じデータ型の列のみを指定した場合は、その型が保持されます
  • Long to Wide で同じ ID 列と変数列の組み合わせが重複している場合、エラーになります。重複した行を区別できる列がデータにあれば、その列を ID Columns に追加すると別々の行に展開されます。区別できる列がない場合(たとえば ID Columns を指定せず変数列の値が重複するとき)は、SQL Query Editor タブ で事前に集約してから変換してください
  • Long to Wide で値がない組み合わせは空欄(null)になります

See also