開始使用 VS Code 中的 Data Wrangler

Data Wrangler 是一款以程式碼為中心的數據檢視與清理工具,整合在 VS Code 和 VS Code Jupyter Notebook 中。它提供豐富的使用者介面來檢視及分析數據,顯示具洞察力的欄位統計資訊與視覺化圖表,並在您清理和轉換數據時自動產生 Pandas 程式碼。

以下是從筆記本(Notebook)開啟 Data Wrangler 以分析和清理數據,並使用內建操作的範例。隨後,自動產生的程式碼將會被匯出回筆記本中。

a gif of opening Data Wrangler from a notebook, looking through the data, switching from Viewing to Editing mode, applying data transformations, and exporting the generated Python code back into the notebook

本文涵蓋以下內容:

  • 安裝與設定 Data Wrangler
  • 從筆記本啟動 Data Wrangler
  • 從數據檔案啟動 Data Wrangler
  • 使用 Data Wrangler 探索數據
  • 使用 Data Wrangler 對數據執行操作與清理
  • 編輯並將數據清理程式碼匯出至筆記本
  • 疑難排解與提供回饋

設置您的環境

  1. 如果您尚未安裝,請安裝 Python重要:Data Wrangler 僅支援 Python 3.8 或更高版本。
  2. 安裝 Visual Studio Code
  3. 安裝 Data Wrangler 擴充功能

當您第一次啟動 Data Wrangler 時,它會詢問您想要連接到哪個 Python 核心(Kernel)。它還會檢查您的機器和環境,確認是否安裝了必要的 Python 套件(例如 Pandas)。

以下是 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 中時,您都處於一個沙盒(sandboxed)環境中,這代表您可以安全地探索和轉換數據。原始資料集在您明確匯出變更之前不會被修改。

從 Jupyter Notebook 啟動 Data Wrangler

從 Jupyter Notebook 啟動 Data Wrangler 有三種方式

a screenshot showing the entry point into Data Wrangler from a notebook

  1. Jupyter > 變數(Variables)面板中,任何支援的數據物件旁邊,您都可以看到一個用以啟動 Data Wrangler 的按鈕。
  2. 如果您的筆記本中有 Pandas 資料框(DataFrame),當您執行輸出資料框的程式碼後,儲存格底部會出現一個 Open 'df' in Data Wrangler 按鈕('df' 為您的資料框變數名稱)。這包括 1) df.head(), 2) df.tail(), 3) display(df), 4) print(df), 5) df
  3. 在筆記本工具列中,選擇 檢視數據(View data)會列出筆記本中所有支援的數據物件。您可以接著選擇想要在 Data Wrangler 中開啟的變數。

直接從檔案啟動 Data Wrangler

您也可以直接從本機檔案(如 .csv)啟動 Data Wrangler。若要這麼做,請在 VS Code 中開啟包含該檔案的資料夾。在檔案總管(File Explorer)視圖中,對檔案按右鍵並點選 Open in Data Wrangler

a screenshot showing the entry point into Data Wrangler from a file

Data Wrangler 目前支援下列檔案類型

  • .csv/.tsv
  • .xls/.xlsx
  • .parquet

視檔案類型而定,您可以指定檔案的分隔符號和/或工作表。

a screenshot showing the parameters you can set in Data Wrangler when opening directly from a file

您也可以將這些檔案類型設定為預設使用 Data Wrangler 開啟。

使用者介面導覽

Data Wrangler 在處理數據時有兩種模式。每種模式的詳細資訊在下文中說明。

  1. 檢視模式(Viewing mode):檢視模式針對介面進行了最佳化,讓您能快速檢視、篩選和排序數據。此模式非常適合對資料集進行初步探索。
  2. 編輯模式(Editing mode):編輯模式針對介面進行了最佳化,讓您能對資料集套用轉換、清理或修改。當您在介面中套用這些轉換時,Data Wrangler 會自動產生相關的 Pandas 程式碼,並可匯出回您的筆記本以供重複使用。

注意:Data Wrangler 預設以檢視模式開啟。您可以在設定編輯器中變更此行為

a screenshot of the setting in Visual Studio Code for setting the default mode of Data Wrangler

檢視模式介面

a screenshot showing the different components in the UI for Data Wrangler in Viewing mode

  1. 數據摘要(Data Summary)面板顯示您整體資料集的詳細統計摘要,或在選取特定欄位時顯示該欄位的摘要。

  2. 您可以透過欄位標題選單,對該欄位套用任何 數據篩選/排序

  3. 切換 Data Wrangler 的 檢視編輯 模式,以存取內建的數據操作。

  4. 快速洞察(Quick Insights)標題中,您可以快速查看關於每個欄位的寶貴資訊。根據欄位的數據類型,快速洞察會顯示數據分佈、資料點頻率,以及缺失值與相異值的統計。

  5. 數據網格(Data Grid)提供了一個可捲動的面板,讓您檢視整個資料集。


編輯模式介面

切換至編輯模式會啟用 Data Wrangler 中的額外功能與介面元素。在下方的螢幕截圖中,我們使用 Data Wrangler 將最後一欄中的缺失值替換為該欄位的中位數。

a screenshot showing the different components in the UI for Data Wrangler in Editing mode

  1. 操作(Operations)面板是您可以搜尋所有 Data Wrangler 內建數據操作的地方。操作按類別組織。

  2. 清理步驟(Cleaning Steps)面板顯示了所有先前已套用操作的清單。它允許使用者撤銷特定操作或編輯最近一次的操作。選取一個步驟會反白顯示數據差異(data diff)視圖中的變更,並顯示與該操作相關的已產生程式碼。

  3. 匯出選單(Export Menu)讓您將程式碼匯出回 Jupyter Notebook,或將數據匯出為新檔案。

  4. 當您選取一項操作並預覽其對數據的影響時,網格會疊加顯示您對數據所做變更的 數據差異(data diff)視圖。

  5. 程式碼預覽(Code Preview)區段顯示了當選取操作時,Data Wrangler 所產生的 Python 與 Pandas 程式碼。當未選取任何操作時,該區段保持空白。您可以編輯已產生的程式碼,這會導致數據網格反白顯示其對數據造成的影響。

Data Wrangler 操作

內建的 Data Wrangler 操作可以從 操作(Operation)面板中選取。

a screenshot of the Data Wrangler Operations panel

下表列出了 Data Wrangler 初始版本中目前支援的 Data Wrangler 操作。我們計劃在不久的將來新增更多操作。

操作 說明
排序 按升序或降序排序欄位
篩選 根據一個或多個條件篩選列
計算文字長度 建立新欄位,其值等於文字欄位中每個字串值的長度
獨熱編碼 (One-hot encode) 將類別數據拆分為每個類別的新欄位
多標籤二值化 (Multi-label binarizer) 使用分隔符號將類別數據拆分為每個類別的新欄位
根據公式建立欄位 使用自訂 Python 公式建立欄位
變更欄位類型 變更欄位的數據類型
刪除欄位 刪除一個或多個欄位
選取欄位 選擇一個或多個要保留的欄位並刪除其餘欄位
重新命名欄位 重新命名一個或多個欄位
複製欄位 建立一個或多個欄位的複本
刪除缺失值 移除具有缺失值的列
刪除重複列 刪除所有在一個或多個欄位中具有重複值的列
填補缺失值 以新值替換具有缺失值的儲存格
尋找與取代 替換符合特定模式的儲存格
依欄位分組並聚合 依欄位分組並聚合結果
去除空白 移除文字開頭與結尾的空白
拆分文字 根據使用者定義的分隔符號將欄位拆分為多個欄位
將首字元大寫 將第一個字元轉換為大寫,其餘為小寫
轉換文字為小寫 轉換文字為小寫
轉換文字為大寫 轉換文字為大寫
依範例轉換字串 當從您提供的範例偵測到模式時,自動執行字串轉換
依範例格式化日期時間 (DateTime) 當從您提供的範例偵測到模式時,自動執行日期時間格式化
依範例建立新欄位 當從您提供的範例偵測到模式時,自動建立欄位。
縮放最小值/最大值 在最小值與最大值之間縮放數值欄位
四捨五入 將數字四捨五入至指定的小數位數
無條件捨去 (Floor) 將數字向下取整至最接近的整數
無條件進位 (Ceiling) 將數字向上取整至最接近的整數
自訂操作 根據範例與現有欄位的衍生,自動建立新欄位

如果缺少您希望在 Data Wrangler 中支援的操作,請在我們的 Data Wrangler GitHub 儲存庫提交功能請求。

修改先前的步驟

產生的程式碼中的每個步驟都可以透過 清理步驟(Cleaning Steps)面板進行修改。首先,選取您要修改的步驟。接著,當您變更操作(透過程式碼或操作面板)時,該變更對數據的影響會反白顯示在網格視圖中。

a screenshot showing how to modify previous steps

編輯並匯出程式碼

一旦您在 Data Wrangler 中完成數據清理步驟,有三種方式可以從 Data Wrangler 匯出清理後的資料集。

  1. 匯出程式碼回筆記本並退出:這會在您的 Jupyter Notebook 中建立一個新儲存格,其中包含您產生的所有數據清理程式碼,並封裝成一個 Python 函數。
  2. 匯出數據至檔案:這會將清理後的資料集儲存為您電腦上的新 CSV 或 Parquet 檔案。
  3. 複製程式碼至剪貼簿:這會複製 Data Wrangler 為數據清理操作產生的所有程式碼。

a screenshot of the export menu in Data Wrangler

搜尋欄位

若要在資料集中尋找特定欄位,請從 Data Wrangler 工具列中選取 前往欄位(Go to column)並搜尋相應的欄位。

a screenshot of the search for columns feature

疑難排解

一般核心連接問題

關於一般連接問題,請參閱上方的「連接至 Python 核心」章節了解替代連接方法。若要針對本機 Python 解譯器選項相關的問題進行偵錯,一種可能解決問題的方法是安裝不同版本的 Jupyter 和 Python 擴充功能。例如,如果已安裝穩定版本的擴充功能,您可以嘗試安裝預覽版本(反之亦然)。

若要清除已快取的核心,您可以從命令選擇區執行 Data Wrangler: Clear cached runtime 命令 ⇧⌘P (Windows, Linux Ctrl+Shift+P)

開啟數據檔案時出現 UnicodeDecodeError

如果您在直接從 Data Wrangler 開啟數據檔案時遇到 UnicodeDecodeError,這可能是由兩個原因造成的

  1. 您嘗試開啟的檔案編碼不是 UTF-8
  2. 檔案已損毀。

為了繞過此錯誤,您需要改從 Jupyter Notebook 開啟 Data Wrangler,而不是直接從數據檔案開啟。使用 Jupyter Notebook 透過 Pandas 讀取檔案,例如使用 read_csv 方法。在 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.com.tw/docs/configure/telemetry 了解更多相關資訊。

© . This site is unofficial and not affiliated with Microsoft.