VS Code で Data Wrangler を使ってみる
Data Wrangler は、VS Code および VS Code Jupyter Notebooks に統合された、コード中心のデータ表示およびクレンジング ツールです。データを表示および分析するためのリッチなユーザー インターフェイスを提供し、洞察に満ちた列の統計情報や視覚化を表示するとともに、データのクレンジングや変換に合わせて Pandas コードを自動的に生成します。
以下は、ノートブックから Data Wrangler を開いて、組み込みの操作でデータを分析およびクレンジングする例です。その後、自動生成されたコードがノートブックにエクスポートされます。

このドキュメントでは、以下の方法について説明します。
- Data Wrangler のインストールとセットアップ
- ノートブックから Data Wrangler を起動する
- データ ファイルから Data Wrangler を起動する
- Data Wrangler を使用してデータを探索する
- Data Wrangler を使用してデータに対する操作やクレンジングを実行する
- データ ラングリング コードを編集してノートブックにエクスポートする
- トラブルシューティングとフィードバックの提供
環境のセットアップ
- まだインストールしていない場合は、Python をインストールしてください。重要: Data Wrangler は、Python バージョン 3.8 以上のみをサポートしています。
- Visual Studio Code をインストールする。
- Data Wrangler 拡張機能のインストール
Data Wrangler を初めて起動すると、接続する Python カーネルの選択を求められます。また、お使いのマシンと環境をチェックし、Pandas などの必要な Python パッケージがインストールされているかどうかを確認します。
以下は、Python および Python パッケージの必要なバージョンと、それらが Data Wrangler によって自動的にインストールされるかどうかのリストです。
| 名前 | 最小必要バージョン | 自動的にインストールされる |
|---|---|---|
| Python | 3.8 | なし |
| pandas | 0.25.2 | はい |
これらの依存関係が環境内で見つからない場合、Data Wrangler は pip を使用して自動的にインストールを試みます。Data Wrangler が依存関係をインストールできない場合、最も簡単な回避策は手動で pip install を実行し、その後 Data Wrangler を再起動することです。これらの依存関係は、Data Wrangler が Python および Pandas のコードを生成するために必要です。
Data Wrangler を開く
Data Wrangler を使用している間は、常にサンドボックス環境にいるため、安全にデータを探索および変換できます。変更を明示的にエクスポートするまで、元のデータセットは変更されません。
Jupyter Notebook から Data Wrangler を起動する
Jupyter Notebook から Data Wrangler を起動する方法は 3 つあります。

- Jupyter > 変数 (Variables) パネルで、サポートされているデータ オブジェクトの横に、Data Wrangler を起動するボタンが表示されます。
- ノートブックに Pandas のデータフレームがある場合、データフレームを出力するコードを実行した後に、セルの下部に Open 'df' in Data Wrangler ボタン('df' はデータフレームの変数名)が表示されます。これには、1)
df.head()、2)df.tail()、3)display(df)、4)print(df)、5)dfが含まれます。 - ノートブックのツールバーで View data (データを表示) を選択すると、ノートブック内のサポートされているすべてのデータ オブジェクトのリストが表示されます。その後、そのリスト内のどの変数を Data Wrangler で開くかを選択できます。
ファイルから直接 Data Wrangler を起動する
ローカル ファイル(.csv など)から直接 Data Wrangler を起動することもできます。これを行うには、開きたいファイルが含まれているフォルダーを VS Code で開きます。エクスプローラー ビューでファイルを右クリックし、Open in Data Wrangler をクリックします。

Data Wrangler は現在、以下のファイルの種類をサポートしています。
.csv/.tsv.xls/.xlsx.parquet
ファイルの種類に応じて、区切り文字やファイルのシートを指定できます。

これらのファイルの種類をデフォルトで Data Wrangler で開くように設定することもできます。
UI ツアー
Data Wrangler には、データを操作する際に 2 つのモードがあります。各モードの詳細は、以下のセクションで説明します。
- 表示モード (Viewing mode): 表示モードは、データのクイックな表示、フィルター処理、並べ替えを行うためにインターフェイスが最適化されています。このモードは、データセットの初期探索を行うのに適しています。
- 編集モード (Editing mode): 編集モードは、データセットに対して変換、クレンジング、または修正を適用するためにインターフェイスが最適化されています。インターフェイスでこれらの変換を適用すると、Data Wrangler は自動的に関連する Pandas コードを生成し、これをノートブックにエクスポートして再利用できます。
注意: デフォルトでは、Data Wrangler は表示モードで開きます。この動作は、設定エディター で変更できます。

表示モードのインターフェイス

-
データ サマリー パネルには、データセット全体、または(列が選択されている場合は)特定の列の詳細な要約統計量が表示されます。
-
列のヘッダー メニューから、その列に対して任意のデータのフィルター/並べ替えを適用できます。
-
Data Wrangler の表示モードと編集モードを切り替えて、組み込みのデータ操作にアクセスします。
-
クイック インサイト (Quick Insights) ヘッダーでは、各列に関する貴重な情報をすばやく確認できます。列のデータ型に応じて、クイック インサイトはデータの分布やデータポイントの頻度、さらに欠損値や一意の値を表示します。
-
データ グリッドは、データセット全体を表示できるスクロール可能なペインを提供します。
編集モードのインターフェイス
編集モードに切り替えると、Data Wrangler で追加の機能やユーザー インターフェイス要素が有効になります。以下のスクリーンショットでは、Data Wrangler を使用して、最後の列の欠損値をその列の中央値に置き換えています。

-
操作 (Operations) パネルでは、Data Wrangler のすべての組み込みデータ操作を検索できます。操作はカテゴリ別に整理されています。
-
クレンジング ステップ (Cleaning Steps) パネルには、これまでに適用されたすべての操作のリストが表示されます。ユーザーは特定の操作を元に戻したり、最新の操作を編集したりできます。ステップを選択すると、データ差分(diff)ビューで変更箇所がハイライトされ、その操作に関連付けられた生成コードが表示されます。
-
エクスポート メニューを使用すると、コードを Jupyter Notebook にエクスポートしたり、データを新しいファイルにエクスポートしたりできます。
-
操作を選択してデータへの影響をプレビューしているとき、グリッドにはデータに加えた変更のデータ差分 (diff) ビューが重ねて表示されます。
-
コード プレビュー (Code Preview) セクションには、操作が選択されたときに Data Wrangler が生成した Python および Pandas のコードが表示されます。操作が選択されていないときは空のままです。生成されたコードを編集すると、データ グリッド上でデータへの影響がハイライトされます。
Data Wrangler の操作
組み込みの Data Wrangler 操作は、操作 (Operation) パネルから選択できます。

次の表は、Data Wrangler の初期リリースで現在サポートされている操作のリストです。近い将来、さらに多くの操作を追加する予定です。
| 操作 | 説明 |
|---|---|
| 並べ替え | 列を昇順または降順で並べ替える |
| フィルター | 1 つ以上の条件に基づいて行をフィルター処理する |
| テキストの長さを計算 | テキスト列の各文字列値の長さと等しい値を持つ新しい列を作成する |
| ワンホット エンコーディング | カテゴリ データをカテゴリごとの新しい列に分割する |
| マルチラベル バイナライザー | 区切り文字を使用して、カテゴリ データをカテゴリごとの新しい列に分割する |
| 数式から列を作成 | カスタムの Python 数式を使用して列を作成する |
| 列の型の変更 | 列のデータ型を変更する |
| 列の削除 | 1 つ以上の列を削除する |
| 列の選択 | 保持する 1 つ以上の列を選択し、残りを削除する |
| 列名の変更 | 1 つ以上の列の名前を変更する |
| 列の複製 | 1 つ以上の列のコピーを作成する |
| 欠損値の削除 | 欠損値のある行を削除する |
| 重複行の削除 | 1 つ以上の列に重複する値があるすべての行を削除する |
| 欠損値の穴埋め | 欠損値のあるセルを新しい値に置き換える |
| 検索と置換 | 一致するパターンでセルを置き換える |
| 列によるグループ化と集計 | 列ごとにグループ化して結果を集計する |
| 空白の除去 | テキストの先頭と末尾から空白を削除する |
| テキストの分割 | ユーザーが定義した区切り文字に基づいて、列を複数の列に分割する |
| 先頭文字の大文字化 | 先頭の文字を大文字に、残りの文字を小文字に変換する |
| テキストを小文字に変換 | テキストを小文字に変換 |
| テキストを大文字に変換 | テキストをすべて大文字に変換 |
| 例による文字列変換 | 提供された例からパターンが検出されたときに、文字列変換を自動的に実行する |
| 例による日時(DateTime)フォーマット | 提供された例からパターンが検出されたときに、日時のフォーマットを自動的に実行する |
| 例による新しい列の作成 | 提供された例からパターンが検出されたときに、列を自動的に作成する。 |
| 最小値/最大値のスケーリング | 数値列を最小値と最大値の間にスケーリングする |
| 四捨五入 | 数値を指定された小数点以下の桁数に丸める |
| 切り捨て (floor) | 数値を最も近い整数に切り捨てる |
| 切り上げ (ceiling) | 数値を最も近い整数に切り上げる |
| カスタム操作 | 例と既存の列の派生に基づいて、新しい列を自動的に作成する |
不足している操作があり、Data Wrangler でサポートしてほしい場合は、Data Wrangler の GitHub リポジトリで機能要望を送信してください。
以前の手順の変更
生成されたコードの各ステップは、クレンジング ステップ (Cleaning Steps) パネルから変更できます。まず、変更したいステップを選択します。次に、操作に変更を加えると(コードまたは操作パネルを介して)、データへの変更の影響がグリッド ビューでハイライトされます。

コードの編集とエクスポート
Data Wrangler でのデータ クレンジングの手順が完了したら、クレンジングされたデータセットを Data Wrangler からエクスポートする方法が 3 つあります。
- コードをノートブックにエクスポートして終了 (Export code back to Notebook and exit): これにより、生成されたすべてのデータ クレンジング コードが Python 関数にパッケージ化され、Jupyter Notebook に新しいセルとして作成されます。
- データをファイルにエクスポート (Export data to a file): これにより、クレンジングされたデータセットが新しい CSV または Parquet ファイルとしてマシンに保存されます。
- コードをクリップボードにコピー (Copy code to clipboard): これにより、データ クレンジング操作のために Data Wrangler によって生成されたすべてのコードがコピーされます。

列の検索
データセット内の特定の列を見つけるには、Data Wrangler のツールバーから 列に移動 (Go to column) を選択し、目的の列を検索します。

トラブルシューティング
一般的なカーネル接続の問題
一般的な接続の問題については、代替の接続方法について説明している上記の「Python カーネルへの接続」セクションを参照してください。ローカル Python インタープリター オプションに関連する問題をデバッグする場合、問題を解決できる可能性のある 1 つの方法は、異なるバージョンの Jupyter および Python 拡張機能をインストールすることです。たとえば、拡張機能の安定版がインストールされている場合は、プレリリース版をインストールする(またはその逆を行う)ことができます。
すでにキャッシュされているカーネルをクリアするには、コマンド パレット ⇧⌘P(Windows、Linux は Ctrl+Shift+P)から Data Wrangler: Clear cached runtime コマンドを実行します。
データ ファイルを開くと UnicodeDecodeError が発生する
Data Wrangler から直接データ ファイルを開くときに UnicodeDecodeError が発生する場合、次の 2 つの原因が考えられます。
- 開こうとしているファイルのエンコーディングが
UTF-8以外である - ファイルが破損している。
このエラーを回避するには、データ ファイルから直接開くのではなく、Jupyter Notebook から Data Wrangler を開く必要があります。Jupyter Notebook を使用し、たとえば read_csv メソッドなどを用いて Pandas でファイルを読み込みます。read メソッド内で、encoding や encoding_errors パラメーターを使用して、使用するエンコーディングやエンコーディング エラーの処理方法を定義します。そのファイルにどのエンコーディングが適しているか不明な場合は、chardet などのライブラリを試して、動作するエンコーディングを推測することができます。
質問とフィードバック
問題が発生した場合、機能要望がある場合、またはその他のフィードバックがある場合は、GitHub リポジトリで Issue を送信してください: https://github.com/microsoft/vscode-data-wrangler/issues/new/choose
データとテレメトリ
Visual Studio Code 用の Microsoft Data Wrangler 拡張機能は、製品やサービスの向上に役立てるため、使用状況データを収集して Microsoft に送信します。詳細については、プライバシー ステートメントをお読みください。この拡張機能は telemetry.telemetryLevel 設定を尊重します。詳細については、https://vscode.dokyumento.jp/docs/configure/telemetry を参照してください。