现已发布!阅读有关一月份的新功能和修复。

VS Code 中的 Data Wrangler 入门

Data Wrangler 是一个以代码为中心的 VS Code 和 VS Code Jupyter Notebook 集成的数据查看和清理工具。它提供了一个丰富的用户界面来查看和分析您的数据,显示有见地的列统计信息和可视化,并在您清理和转换数据时自动生成 Pandas 代码。

下面是一个从 notebook 打开 Data Wrangler 以使用内置操作分析和清理数据的示例。然后,将自动生成的代码导出回 notebook。

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
  • 从 notebook 启动 Data Wrangler
  • 从数据文件启动 Data Wrangler
  • 使用 Data Wrangler 探索您的数据
  • 使用 Data Wrangler 对您的数据执行操作和清理
  • 将数据整理代码编辑并导出到 notebook
  • 故障排除和提供反馈

设置您的环境

  1. 如果您还没有这样做,请安装 Python重要提示: Data Wrangler 仅支持 Python 3.8 或更高版本。
  2. 安装 Visual Studio Code
  3. 安装 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

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

  1. 在 **Jupyter** > **Variables**(变量)面板中,在任何支持的数据对象旁边,您都可以看到一个启动 Data Wrangler 的按钮。
  2. 如果您在 notebook 中有一个 Pandas 数据框,现在在运行输出数据框的代码后,您将在单元格底部看到一个“在 Data Wrangler 中打开 'df'”(其中 'df' 是您数据框的变量名)按钮。这包括 1) df.head(), 2) df.tail(), 3) display(df), 4) print(df), 5) df
  3. 在 notebook 工具栏中,选择 **View data**(查看数据)会弹出一个包含 notebook 中每个支持的数据对象的列表。然后,您可以选择列表中要用 Data Wrangler 打开的变量。

直接从文件启动 Data Wrangler

您也可以直接从本地文件(例如 .csv)启动 Data Wrangler。为此,请在 VS Code 中打开包含您要打开的文件的任何文件夹。在“文件资源管理器”视图中,右键单击该文件,然后单击 **Open in Data Wrangler**(在 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 打开。

UI 导览

Data Wrangler 在处理数据时有两种模式。每种模式的详细信息将在下面的后续部分中进行解释。

  1. 查看模式: 查看模式优化了界面,以便您可以快速查看、过滤和排序数据。此模式非常适合对数据集进行初步探索。
  2. 编辑模式: 编辑模式优化了界面,以便您可以对数据集应用转换、清理或修改。当您在界面中应用这些转换时,Data Wrangler 会自动生成相应的 Pandas 代码,并且可以将其导出回您的 notebook 以供重用。

注意:默认情况下,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. 您可以从列的标题菜单中对列应用任何 **Data Filters/Sorts**(数据过滤器/排序)。

  3. 在 Data Wrangler 的 **Viewing**(查看)或 **Editing**(编辑)模式之间切换,以访问内置的数据操作。

  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(清理步骤)面板显示了先前应用的所有操作的列表。它使用户能够撤销特定操作或编辑*最新*的操作。选择一个步骤将突出显示数据差异视图中的更改,并显示与该操作关联的生成代码。

  3. Export Menu(导出菜单)允许您将代码导出回 Jupyter Notebook 或将数据导出到新文件。

  4. 当您选择了一个操作并预览了它对数据的影响时,网格将覆盖您对数据所做的更改的数据差异视图。

  5. Code Preview(代码预览)部分显示当选择一个操作时 Data Wrangler 生成的 Python 和 Pandas 代码。当没有选择操作时,它保持为空。您可以编辑生成的代码,这将导致数据网格突出显示对数据的影响。

Data Wrangler 操作

内置的 Data Wrangler 操作可以从 **Operation**(操作)面板中选择。

a screenshot of the Data Wrangler Operations panel

下表列出了 Data Wrangler 在其初始发布版本中当前支持的操作。我们计划在不久的将来添加更多操作。

操作 描述
排序 按升序或降序对列进行排序
筛选 根据一个或多个条件筛选行
计算文本长度 创建新列,其值等于文本列中每个字符串值的长度
独热编码 将分类数据拆分为每个类别的新列
多标签二值化 使用分隔符将分类数据拆分为每个类别的新列
从公式创建列 使用自定义 Python 公式创建列
更改列类型 更改列的数据类型
删除列 删除一个或多个列
选择列 选择要保留的一个或多个列,删除其余的
重命名列 重命名一个或多个列
克隆列 创建现有列的一个或多个副本
删除缺失值 删除包含缺失值的行
删除重复行 删除在一个或多个列中具有重复值的所有行
填充缺失值 用新值替换包含缺失值的单元格
查找和替换 替换与匹配模式相匹配的单元格
按列分组并聚合 按列分组并聚合结果
去除空格 从文本的开头和结尾删除空格
拆分文本 根据用户定义的分隔符将一列拆分为几列
首字母大写 将第一个字符转换为大写,其余字符转换为小写
转换为小写文本 转换为小写文本
转换为大写文本 转换为大写文本
按示例转换字符串 当检测到您提供的示例中的模式时,自动执行字符串转换
按示例格式化日期时间 当检测到您提供的示例中的模式时,自动执行日期时间格式化
按示例创建新列 当检测到您提供的示例中的模式时,自动创建列。
缩放最小值/最大值 将数字列缩放到最小值和最大值之间
四舍五入 将数字四舍五入到指定的小数位数
向下取整(floor) 将数字向下取整到最接近的整数
向上取整(ceiling) 将数字向上取整到最接近的整数
自定义操作 根据示例和现有列的推导,自动创建新列

如果缺少您希望 Data Wrangler 支持的操作,请在我们的 Data Wrangler GitHub 仓库中提交功能请求。

修改之前的步骤

生成代码的每个步骤都可以通过 **Cleaning Steps**(清理步骤)面板进行修改。首先,选择要修改的步骤。然后,当您通过代码或操作面板对操作进行更改时,您的更改对数据的影响将在网格视图中突出显示。

a screenshot showing how to modify previous steps

编辑和导出代码

完成 Data Wrangler 中的数据清理步骤后,有三种方法可以从 Data Wrangler 导出清理后的数据集。

  1. 将代码导出回 Notebook 并退出: 这将在您的 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(Data Wrangler:清除缓存的运行时)命令 ⇧⌘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

数据和遥测

Microsoft Data Wrangler Visual Studio Code 扩展会收集使用数据并将其发送给 Microsoft,以帮助改进我们的产品和服务。阅读我们的 隐私声明以了解更多信息。此扩展遵守 telemetry.telemetryLevel 设置,您可以在 https://vscode.js.cn/docs/configure/telemetry 上了解更多关于此设置的信息。

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