Data Wrangler は、探索的データ分析のためのイマーシブで視覚的なインターフェイスを提供することで、データ準備ワークフローを高速化します。 この記事では、次の方法について説明します。
- Fabric ノートブックから Data Wrangler を起動する
- 対話型の視覚化と概要統計を使用してデータを探索する
- 自動コード生成で一般的なデータ クリーニング操作を適用する
- 再利用可能な pandas 関数または PySpark 関数をノートブックにエクスポートし直す
この記事では、pandas DataFrames について説明します。 Spark DataFrame については、 このリソースを参照してください。
前提条件
Microsoft Fabric サブスクリプションを取得します。 または、無料の Microsoft Fabric 試用版にサインアップします。
Microsoft Fabric にサインインします。
ホーム ページの左下にあるエクスペリエンス スイッチャーを使用して Fabric に切り替えます。
制限事項
- カスタム コード操作では現在、pandas DataFrames のみがサポートされています。
- Data Wrangler ディスプレイは、大規模なモニターに最適です。 ただし、小さい画面に対応するために、インターフェイスのさまざまな部分を最小限に抑えたり非表示にしたりできます。
Data Wrangler の起動
Microsoft Fabric ノートブックから Data Wrangler を直接起動して、Pandas または Spark DataFrame を探索して変換できます。
サンプル データの使用を開始するには:
このコード スニペットは、Pandas DataFrame にサンプル データを読み取る方法を示しています。
import pandas as pd
# Read a CSV into a Pandas DataFrame
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/titanic.csv")
display(df)
ノートブック リボンの [ホーム] タブで、Data Wrangler ドロップダウンを使用して、編集に使用できるアクティブな DataFrame を参照します。 Data Wrangler で開く内容を選択します。
ヒント
ノートブック カーネルがビジー状態の間は、Data Wrangler を開くできません。 次のスクリーンショットに示すように、Data Wrangler を起動するには、実行中のセルが完了している必要があります。
カスタム サンプルの選択
Data Wrangler でアクティブな DataFrame のカスタム サンプルを開くには、次のスクリーンショットに示すように、ドロップダウンから [カスタム サンプルの選択 ] を選択します。
この操作により、目的のサンプルのサイズ (行数) とサンプリング 方法 (最初のレコード、最後のレコード、またはランダム セット) を指定するオプションが表示されたダイアログが開きます。 次のスクリーンショットで示すように、DataFrame の最初の 5,000 行が既定のサンプル サイズとして機能します。
概要統計情報の表示
Data Wrangler が読み込まれると、選択した DataFrame の概要が [概要] パネルに表示されます。 この概要には、DataFrame ディメンション、欠損値などの情報が含まれます。 [データ ラングラー] グリッドで列を選択すると、[ 概要 ] パネルが更新され、その特定の列に関する説明的な統計情報が表示されます。 すべての列に関するクイック分析情報は、そのヘッダーでも利用できます。
ヒント
列固有の統計とビジュアル ( 概要 パネルと列ヘッダーの両方) は、列データ型によって異なります。 たとえば、このスクリーンショットに示されているように、数値列のビン分割されたヒストグラムは、列が数値型としてキャストされている場合にのみ列ヘッダーに表示されます。
データ クリーニング操作の参照
[操作] パネルには、データクリーニング操作の検索可能な一覧が表示されます。 [操作] パネルからデータ クリーニング操作を選択する場合は、操作を完了するために必要なパラメーターと共に、ターゲット列を指定する必要があります。 たとえば、列を数値的にスケーリングするプロンプトには、このスクリーンショットに示されているように、新しい値の範囲が必要です。
ヒント
次のスクリーンショットで示すように、各列ヘッダーのメニューから、より小さな操作を適用できます。
操作のプレビューと適用
選択した操作の結果は、[Data Wrangler] 表示グリッドで自動的にプレビューされ、対応するコードをグリッドの下のパネルに自動的に表示します。 プレビューしたコードをコミットするには、いずれかの場所で [適用 ] を選択します。 プレビューしたコードを削除して新しい操作を試すには、次のスクリーンショットに示すように [破棄 ] を選択します。
操作を適用すると、データ ラングラーの表示グリッドと概要統計が更新され、結果が反映されます。 このコードは、次のスクリーンショットに示すように、[ クリーニングステップ ] パネルのコミットされた操作の実行中の一覧に表示されます。
ヒント
最後に適用した手順は、いつでも元に戻せます。 [ クリーニングステップ ] パネルでは、次のスクリーンショットに示すように、最後に適用したステップの上にカーソルを置くとごみ箱アイコンが表示されます。
次の表は、Data Wrangler で現在サポートされている操作をまとめています。
| 操作 | 説明 |
|---|---|
| 並べ替え | 列を昇順または降順で並べ替え |
| Assert | 1 つ以上の条件に基づいて行をフィルター処理します。 |
| One-hot エンコード | 既存の列の一意の値ごとに新しい列を作成し、行ごとにその値の有無を示す |
| マルチラベル バイナリライザー | 区切り記号を使用してデータを分割し、カテゴリごとに新しい列を作成します。行にそのカテゴリがある場合は 1、そうでない場合は 0 をマークします |
| 列のタイプの変更 | 列のデータ型を変更する |
| 列をドロップする | 1 つまたは複数の列の削除 |
| 列の選択 | 保持する 1 つ以上の列を選択し、残りの列を削除する |
| 列の名前の変更 | 列の名前変更 |
| 欠損値をドロップする | 欠損値を含む行を削除する |
| 重複する行をドロップする | 1 つ以上の列に重複する値を持つすべての行をドロップする |
| 欠落値を入力する | 欠損値のあるセルを新しい値に置き換える |
| 検索および置換 | セルを完全に一致するパターンに置き換える |
| 列と集計ごとにグループ化 | 列の値でグループ化し、結果を集計する |
| 空白を取り除く | テキストの先頭と末尾から空白文字を削除する |
| テキストの分割 | ユーザー定義の区切り記号に基づいて列を複数の列に分割する |
| テキストを小文字に変換する | テキストを小文字に変換する |
| テキストを大文字に変換する | テキストを大文字に変換する |
| 最小値/最大値をスケーリングする | 最小値と最大値の間で数値列をスケーリングする |
| フラッシュ フィル | 既存の列から派生した例に基づいて新しい列を自動的に作成する |
ディスプレイをカスタマイズする
データ ラングラー表示グリッドの上にあるツール バーの [ビュー] タブを使用して、いつでもインターフェイスをカスタマイズできます。 このオプションでは、次のスクリーンショットに示すように、ユーザー設定と画面サイズに基づいて異なるペインを非表示または表示できます。
コードの保存とエクスポート
[Data Wrangler] 表示グリッドの上にあるツール バーには、生成されたコードを保存するためのオプションがあります。 コードをクリップボードにコピーしたり、関数としてノートブックにエクスポートしたりできます。 コードをエクスポートすると、Data Wrangler が閉じられ、ノートブックのコード セルに新しい関数が追加されます。 クリーンされた DataFrame を CSV ファイルとしてダウンロードすることもできます。
ヒント
Data Wrangler は、新しいセルを手動で実行した場合にのみ実行されるコードを生成します。このスクリーンショットに示すように、元の DataFrame は上書きされません。
次のスクリーンショットで示すように、エクスポートしたコードを実行できます。
次のステップ
Pandas DataFrames で Data Wrangler を使用する方法を確認したら、次のリソースを確認します。
- Spark DataFrame で Data Wrangler を使用する - Spark DataFrames に同じ手法を適用する
- ライブデモを視聴 - Guy in a Cubeでデータラングラーがどう動作するか確認してみてください
- VS Code で Data Wrangler を試す - Visual Studio Code でデータ ラングラーを使用する
ご意見およびご提案がある場合は、 Fabric Ideas フォーラムでアイデアを共有します。