VS Code 中的 Data Wrangler 入门
Data Wrangler 是一个以代码为中心的 VS Code 和 VS Code Jupyter Notebook 集成的数据查看和清理工具。它提供了一个丰富的用户界面来查看和分析您的数据,显示有见地的列统计信息和可视化,并在您清理和转换数据时自动生成 Pandas 代码。
下面是一个从 notebook 打开 Data Wrangler 以使用内置操作分析和清理数据的示例。然后,将自动生成的代码导出回 notebook。

本文档涵盖了如何
- 安装和设置 Data Wrangler
- 从 notebook 启动 Data Wrangler
- 从数据文件启动 Data Wrangler
- 使用 Data Wrangler 探索您的数据
- 使用 Data Wrangler 对您的数据执行操作和清理
- 将数据整理代码编辑并导出到 notebook
- 故障排除和提供反馈
设置您的环境
- 如果您还没有这样做,请安装 Python。重要提示: Data Wrangler 仅支持 Python 3.8 或更高版本。
- 安装 Visual Studio Code。
- 安装 Data Wrangler 扩展
当您首次启动 Data Wrangler 时,它会询问您要连接到哪个 Python 内核。它还会检查您的计算机和环境,以查看是否安装了所需的 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 中,您都处于一个沙盒环境中,这意味着您可以安全地探索和转换数据。在您显式导出更改之前,原始数据集不会被修改。
从 Jupyter Notebook 启动 Data Wrangler
有三种方法可以从您的 Jupyter Notebook 启动 Data Wrangler

- 在 **Jupyter** > **Variables**(变量)面板中,在任何支持的数据对象旁边,您都可以看到一个启动 Data Wrangler 的按钮。
- 如果您在 notebook 中有一个 Pandas 数据框,现在在运行输出数据框的代码后,您将在单元格底部看到一个“在 Data Wrangler 中打开 'df'”(其中 'df' 是您数据框的变量名)按钮。这包括 1)
df.head(), 2)df.tail(), 3)display(df), 4)print(df), 5)df。 - 在 notebook 工具栏中,选择 **View data**(查看数据)会弹出一个包含 notebook 中每个支持的数据对象的列表。然后,您可以选择列表中要用 Data Wrangler 打开的变量。
直接从文件启动 Data Wrangler
您也可以直接从本地文件(例如 .csv)启动 Data Wrangler。为此,请在 VS Code 中打开包含您要打开的文件的任何文件夹。在“文件资源管理器”视图中,右键单击该文件,然后单击 **Open in Data Wrangler**(在 Data Wrangler 中打开)。

Data Wrangler 目前支持以下文件类型
.csv/.tsv.xls/.xlsx.parquet
根据文件类型,您可以指定文件的分隔符和/或工作表。

您还可以将这些文件类型设置为默认用 Data Wrangler 打开。
UI 导览
Data Wrangler 在处理数据时有两种模式。每种模式的详细信息将在下面的后续部分中进行解释。
- 查看模式: 查看模式优化了界面,以便您可以快速查看、过滤和排序数据。此模式非常适合对数据集进行初步探索。
- 编辑模式: 编辑模式优化了界面,以便您可以对数据集应用转换、清理或修改。当您在界面中应用这些转换时,Data Wrangler 会自动生成相应的 Pandas 代码,并且可以将其导出回您的 notebook 以供重用。
注意:默认情况下,Data Wrangler 以查看模式打开。您可以在设置编辑器中更改此行为 。

查看模式界面

-
Data Summary(数据摘要)面板显示有关整个数据集或特定列(如果已选择)的详细摘要统计信息。
-
您可以从列的标题菜单中对列应用任何 **Data Filters/Sorts**(数据过滤器/排序)。
-
在 Data Wrangler 的 **Viewing**(查看)或 **Editing**(编辑)模式之间切换,以访问内置的数据操作。
-
Quick Insights(快速见解)标题是您可以快速查看每列有价值信息的地方。根据列的数据类型,快速见解会显示数据的分布或数据点的频率,以及缺失值和唯一值。
-
Data Grid(数据网格)提供了一个可滚动窗格,您可以在其中查看整个数据集。
编辑模式界面
切换到编辑模式可启用 Data Wrangler 中的其他功能和用户界面元素。在下面的截图中,我们使用 Data Wrangler 将最后一列中的缺失值替换为该列的中位数。

-
Operations(操作)面板是您可以搜索 Data Wrangler 所有内置数据操作的地方。操作按类别组织。
-
Cleaning Steps(清理步骤)面板显示了先前应用的所有操作的列表。它使用户能够撤销特定操作或编辑*最新*的操作。选择一个步骤将突出显示数据差异视图中的更改,并显示与该操作关联的生成代码。
-
Export Menu(导出菜单)允许您将代码导出回 Jupyter Notebook 或将数据导出到新文件。
-
当您选择了一个操作并预览了它对数据的影响时,网格将覆盖您对数据所做的更改的数据差异视图。
-
Code Preview(代码预览)部分显示当选择一个操作时 Data Wrangler 生成的 Python 和 Pandas 代码。当没有选择操作时,它保持为空。您可以编辑生成的代码,这将导致数据网格突出显示对数据的影响。
Data Wrangler 操作
内置的 Data Wrangler 操作可以从 **Operation**(操作)面板中选择。

下表列出了 Data Wrangler 在其初始发布版本中当前支持的操作。我们计划在不久的将来添加更多操作。
| 操作 | 描述 |
|---|---|
| 排序 | 按升序或降序对列进行排序 |
| 筛选 | 根据一个或多个条件筛选行 |
| 计算文本长度 | 创建新列,其值等于文本列中每个字符串值的长度 |
| 独热编码 | 将分类数据拆分为每个类别的新列 |
| 多标签二值化 | 使用分隔符将分类数据拆分为每个类别的新列 |
| 从公式创建列 | 使用自定义 Python 公式创建列 |
| 更改列类型 | 更改列的数据类型 |
| 删除列 | 删除一个或多个列 |
| 选择列 | 选择要保留的一个或多个列,删除其余的 |
| 重命名列 | 重命名一个或多个列 |
| 克隆列 | 创建现有列的一个或多个副本 |
| 删除缺失值 | 删除包含缺失值的行 |
| 删除重复行 | 删除在一个或多个列中具有重复值的所有行 |
| 填充缺失值 | 用新值替换包含缺失值的单元格 |
| 查找和替换 | 替换与匹配模式相匹配的单元格 |
| 按列分组并聚合 | 按列分组并聚合结果 |
| 去除空格 | 从文本的开头和结尾删除空格 |
| 拆分文本 | 根据用户定义的分隔符将一列拆分为几列 |
| 首字母大写 | 将第一个字符转换为大写,其余字符转换为小写 |
| 转换为小写文本 | 转换为小写文本 |
| 转换为大写文本 | 转换为大写文本 |
| 按示例转换字符串 | 当检测到您提供的示例中的模式时,自动执行字符串转换 |
| 按示例格式化日期时间 | 当检测到您提供的示例中的模式时,自动执行日期时间格式化 |
| 按示例创建新列 | 当检测到您提供的示例中的模式时,自动创建列。 |
| 缩放最小值/最大值 | 将数字列缩放到最小值和最大值之间 |
| 四舍五入 | 将数字四舍五入到指定的小数位数 |
| 向下取整(floor) | 将数字向下取整到最接近的整数 |
| 向上取整(ceiling) | 将数字向上取整到最接近的整数 |
| 自定义操作 | 根据示例和现有列的推导,自动创建新列 |
如果缺少您希望 Data Wrangler 支持的操作,请在我们的 Data Wrangler GitHub 仓库中提交功能请求。
修改之前的步骤
生成代码的每个步骤都可以通过 **Cleaning Steps**(清理步骤)面板进行修改。首先,选择要修改的步骤。然后,当您通过代码或操作面板对操作进行更改时,您的更改对数据的影响将在网格视图中突出显示。

编辑和导出代码
完成 Data Wrangler 中的数据清理步骤后,有三种方法可以从 Data Wrangler 导出清理后的数据集。
- 将代码导出回 Notebook 并退出: 这将在您的 Jupyter Notebook 中创建一个新单元格,其中包含您生成的所有数据清理代码,并将其打包成一个 Python 函数。
- 将数据导出到文件: 这会将清理后的数据集作为新的 CSV 或 Parquet 文件保存到您的计算机上。
- 将代码复制到剪贴板: 这会复制 Data Wrangler 为数据清理操作生成的所有代码。

搜索列
要查找数据集中的特定列,请从 Data Wrangler 工具栏中选择 **Go to column**(转到列),然后搜索相应的列。

故障排除
常规内核连接问题
对于常规连接问题,请参阅上面的“连接到 Python 内核”部分,了解其他连接方法。要调试与本地 Python 解释器选项相关的问题,一种可能解决问题的方法是安装不同版本的 Jupyter 和 Python 扩展。例如,如果安装了稳定版本的扩展,您可能可以安装预发布版本(反之亦然)。
要清除已缓存的内核,您可以从命令面板运行 Data Wrangler: Clear cached runtime(Data Wrangler:清除缓存的运行时)命令 ⇧⌘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
数据和遥测
Microsoft Data Wrangler Visual Studio Code 扩展会收集使用数据并将其发送给 Microsoft,以帮助改进我们的产品和服务。阅读我们的 隐私声明以了解更多信息。此扩展遵守 telemetry.telemetryLevel 设置,您可以在 https://vscode.js.cn/docs/configure/telemetry 上了解更多关于此设置的信息。