開始使用 VS Code 中的 Data Wrangler
Data Wrangler 是一款以程式碼為中心的數據檢視與清理工具,整合在 VS Code 和 VS Code Jupyter Notebook 中。它提供豐富的使用者介面來檢視及分析數據,顯示具洞察力的欄位統計資訊與視覺化圖表,並在您清理和轉換數據時自動產生 Pandas 程式碼。
以下是從筆記本(Notebook)開啟 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 核心(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 有三種方式

- 在 Jupyter > 變數(Variables)面板中,任何支援的數據物件旁邊,您都可以看到一個用以啟動 Data Wrangler 的按鈕。
- 如果您的筆記本中有 Pandas 資料框(DataFrame),當您執行輸出資料框的程式碼後,儲存格底部會出現一個 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 中開啟包含該檔案的資料夾。在檔案總管(File Explorer)視圖中,對檔案按右鍵並點選 Open in Data Wrangler。

Data Wrangler 目前支援下列檔案類型
.csv/.tsv.xls/.xlsx.parquet
視檔案類型而定,您可以指定檔案的分隔符號和/或工作表。

您也可以將這些檔案類型設定為預設使用 Data Wrangler 開啟。
使用者介面導覽
Data Wrangler 在處理數據時有兩種模式。每種模式的詳細資訊在下文中說明。
- 檢視模式(Viewing mode):檢視模式針對介面進行了最佳化,讓您能快速檢視、篩選和排序數據。此模式非常適合對資料集進行初步探索。
- 編輯模式(Editing mode):編輯模式針對介面進行了最佳化,讓您能對資料集套用轉換、清理或修改。當您在介面中套用這些轉換時,Data Wrangler 會自動產生相關的 Pandas 程式碼,並可匯出回您的筆記本以供重複使用。
注意:Data Wrangler 預設以檢視模式開啟。您可以在設定編輯器中變更此行為 。

檢視模式介面

-
數據摘要(Data Summary)面板顯示您整體資料集的詳細統計摘要,或在選取特定欄位時顯示該欄位的摘要。
-
您可以透過欄位標題選單,對該欄位套用任何 數據篩選/排序。
-
切換 Data Wrangler 的 檢視 或 編輯 模式,以存取內建的數據操作。
-
在 快速洞察(Quick Insights)標題中,您可以快速查看關於每個欄位的寶貴資訊。根據欄位的數據類型,快速洞察會顯示數據分佈、資料點頻率,以及缺失值與相異值的統計。
-
數據網格(Data Grid)提供了一個可捲動的面板,讓您檢視整個資料集。
編輯模式介面
切換至編輯模式會啟用 Data Wrangler 中的額外功能與介面元素。在下方的螢幕截圖中,我們使用 Data Wrangler 將最後一欄中的缺失值替換為該欄位的中位數。

-
操作(Operations)面板是您可以搜尋所有 Data Wrangler 內建數據操作的地方。操作按類別組織。
-
清理步驟(Cleaning Steps)面板顯示了所有先前已套用操作的清單。它允許使用者撤銷特定操作或編輯最近一次的操作。選取一個步驟會反白顯示數據差異(data diff)視圖中的變更,並顯示與該操作相關的已產生程式碼。
-
匯出選單(Export Menu)讓您將程式碼匯出回 Jupyter Notebook,或將數據匯出為新檔案。
-
當您選取一項操作並預覽其對數據的影響時,網格會疊加顯示您對數據所做變更的 數據差異(data diff)視圖。
-
程式碼預覽(Code Preview)區段顯示了當選取操作時,Data Wrangler 所產生的 Python 與 Pandas 程式碼。當未選取任何操作時,該區段保持空白。您可以編輯已產生的程式碼,這會導致數據網格反白顯示其對數據造成的影響。
Data Wrangler 操作
內建的 Data Wrangler 操作可以從 操作(Operation)面板中選取。

下表列出了 Data Wrangler 初始版本中目前支援的 Data Wrangler 操作。我們計劃在不久的將來新增更多操作。
| 操作 | 說明 |
|---|---|
| 排序 | 按升序或降序排序欄位 |
| 篩選 | 根據一個或多個條件篩選列 |
| 計算文字長度 | 建立新欄位,其值等於文字欄位中每個字串值的長度 |
| 獨熱編碼 (One-hot encode) | 將類別數據拆分為每個類別的新欄位 |
| 多標籤二值化 (Multi-label binarizer) | 使用分隔符號將類別數據拆分為每個類別的新欄位 |
| 根據公式建立欄位 | 使用自訂 Python 公式建立欄位 |
| 變更欄位類型 | 變更欄位的數據類型 |
| 刪除欄位 | 刪除一個或多個欄位 |
| 選取欄位 | 選擇一個或多個要保留的欄位並刪除其餘欄位 |
| 重新命名欄位 | 重新命名一個或多個欄位 |
| 複製欄位 | 建立一個或多個欄位的複本 |
| 刪除缺失值 | 移除具有缺失值的列 |
| 刪除重複列 | 刪除所有在一個或多個欄位中具有重複值的列 |
| 填補缺失值 | 以新值替換具有缺失值的儲存格 |
| 尋找與取代 | 替換符合特定模式的儲存格 |
| 依欄位分組並聚合 | 依欄位分組並聚合結果 |
| 去除空白 | 移除文字開頭與結尾的空白 |
| 拆分文字 | 根據使用者定義的分隔符號將欄位拆分為多個欄位 |
| 將首字元大寫 | 將第一個字元轉換為大寫,其餘為小寫 |
| 轉換文字為小寫 | 轉換文字為小寫 |
| 轉換文字為大寫 | 轉換文字為大寫 |
| 依範例轉換字串 | 當從您提供的範例偵測到模式時,自動執行字串轉換 |
| 依範例格式化日期時間 (DateTime) | 當從您提供的範例偵測到模式時,自動執行日期時間格式化 |
| 依範例建立新欄位 | 當從您提供的範例偵測到模式時,自動建立欄位。 |
| 縮放最小值/最大值 | 在最小值與最大值之間縮放數值欄位 |
| 四捨五入 | 將數字四捨五入至指定的小數位數 |
| 無條件捨去 (Floor) | 將數字向下取整至最接近的整數 |
| 無條件進位 (Ceiling) | 將數字向上取整至最接近的整數 |
| 自訂操作 | 根據範例與現有欄位的衍生,自動建立新欄位 |
如果缺少您希望在 Data Wrangler 中支援的操作,請在我們的 Data Wrangler GitHub 儲存庫提交功能請求。
修改先前的步驟
產生的程式碼中的每個步驟都可以透過 清理步驟(Cleaning Steps)面板進行修改。首先,選取您要修改的步驟。接著,當您變更操作(透過程式碼或操作面板)時,該變更對數據的影響會反白顯示在網格視圖中。

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

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

疑難排解
一般核心連接問題
關於一般連接問題,請參閱上方的「連接至 Python 核心」章節了解替代連接方法。若要針對本機 Python 解譯器選項相關的問題進行偵錯,一種可能解決問題的方法是安裝不同版本的 Jupyter 和 Python 擴充功能。例如,如果已安裝穩定版本的擴充功能,您可以嘗試安裝預覽版本(反之亦然)。
若要清除已快取的核心,您可以從命令選擇區執行 Data Wrangler: Clear cached runtime 命令 ⇧⌘P (Windows, Linux Ctrl+Shift+P)。
開啟數據檔案時出現 UnicodeDecodeError
如果您在直接從 Data Wrangler 開啟數據檔案時遇到 UnicodeDecodeError,這可能是由兩個原因造成的
- 您嘗試開啟的檔案編碼不是
UTF-8 - 檔案已損毀。
為了繞過此錯誤,您需要改從 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 了解更多相關資訊。