---
title: Reshape
description: Reshape タブでデータの形状を変換できます。Wide to Long（横→縦）で複数列を1列にまとめたり、Long to Wide（縦→横）で Long 形式のデータを列に展開できます。
priority: 0.6
---

# Reshape {#data-reshape}

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

## 基本的な使い方 {#basic-usage}

### Reshape を開く {#opening-reshape}

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

![Reshape タブの基本画面](../shared/images/reshape-basic.webp)

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

## このページで使用するデータ {#sample-data-used-in-this-page}

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

| name  | math | science | english |
|-------|------|---------|---------|
| Alice | 90   | 85      | 88      |
| Bob   | 75   | 92      | 80      |
| Carol | 88   | 78      | 95      |
| Dave  | 92   | 88      | 82      |
| Eve   | 78   | 95      | 90      |

## Wide to Long（横→縦） {#wide-to-long}

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

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

| name  | subject | score |
|-------|---------|-------|
| Alice | math    | 90    |
| Alice | science | 85    |
| Alice | english | 88    |
| Bob   | math    | 75    |
| ...   | ...     | ...   |

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

### パラメータ {#parameters}

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

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

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

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

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

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

![Wide to Long 変換のプレビュー](../shared/images/reshape-wide-to-long.webp)

## Long to Wide（縦→横） {#long-to-wide}

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

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

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

変換前の Long 形式データ:

| name  | subject | score |
|-------|---------|-------|
| Alice | math    | 90    |
| Alice | science | 85    |
| Alice | english | 88    |
| Bob   | math    | 75    |
| ...   | ...     | ...   |

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

変換後:

| name  | math | science | english |
|-------|------|---------|---------|
| Alice | 90   | 85      | 88      |
| Bob   | 75   | 92      | 80      |
| ...   | ...  | ...     | ...     |

### パラメータ {#parameters-1}

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

**ID Columns (row identifiers)** - 変換前後で保持する列を選択します。同じ ID 値を持つ行が1行にまとめられます。上の例では `name` が該当します。各行がどのグループに属するかを識別する列を指定します。

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

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

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

![Long to Wide 変換のプレビュー](../shared/images/reshape-long-to-wide.webp)

## プレビューと保存 {#preview-and-save}

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

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

## 注意事項 {#notes}

- Wide to Long で Value Columns に異なるデータ型の列を指定した場合、値列の型は組み合わせによって決まります。int64 と float64 の組み合わせは float64 に、date と datetime の組み合わせは datetime になります。数値と文字列の混在など、それ以外の組み合わせは string 型に変換されます。同じデータ型の列のみを指定した場合は、その型が保持されます
- Long to Wide で同じ ID 列と変数列の組み合わせが重複している場合、エラーになります。重複を解消するには、[SQL Editor](sql-editor) で事前に集約するか、行を一意に識別できる列を ID Columns に追加してください
- Long to Wide で値がない組み合わせは空欄（null）になります

## See also {#see-also}

- **[データセット](datasets)** - Primary Dataset と Derived Dataset の違い
- **[SQL Editor によるデータ加工](sql-editor)** - SQL での高度なデータ変換
- **[Data Table](data-table)** - データの表示と操作
