在VS Code中开始使用Data Wrangler
Data Wrangler 是一款以代码为中心的数据查看和清理工具,集成于 VS Code 和 VS Code Jupyter 笔记本中。它提供了丰富的用户界面,方便您查看和分析数据,展示富有洞察力的列统计数据和可视化,并在清理和转换数据时自动生成 Pandas 代码。
以下是从笔记本打开数据整理器,利用内置作分析和清理数据的示例。然后自动生成的代码会导出回笔记本。

本文档涵盖了如何:
- 安装和设置数据整理器
- 从笔记本中获取发射数据整理器
- 从数据文件启动数据整理器
- 使用数据整理器来探索你的数据
- 使用数据整理工具对数据进行作和清理
- 编辑并导出数据整理代码到笔记本
- 排查故障和反馈
搭建你的环境
- 如果你还没安装,建议安装Python。重要提示:Data Wrangler 仅支持 Python 3.8 或更高版本。
- 安装Visual Studio Code。
- 安装Data Wrangler扩展
当你第一次启动Data Wrangler时,它会询问你想连接哪个Python内核。它还会检查你的机器和环境,看看是否安装了所需的 Python 包,比如 Pandas。
以下是 Python 和 Python 包所需版本的列表,以及 Data Wrangler 是否会自动安装它们:
| 名称 | 最低要求版本 | 自动安装 |
|---|---|---|
| Python | 3.8 | 不 |
| 熊猫 | 0.25.2 | 是的 |
如果在你的环境中找不到这些依赖,Data Wrangler 会尝试为你安装它们,包括PIP.如果数据整理器无法安装依赖,最简单的解决办法是手动运行PIP安装然后再次启动数据整理器。这些依赖是Data Wrangler所必需的,因此它可以生成Python和Pandas代码。
开放数据整理器
任何时候你在Data Wrangler中,都处于一个沙盒环境中,这意味着你可以安全地探索和转换数据。原始数据集只有在你明确导出修改后才会被修改。
Jupyter 笔记本中的发射数据整理器
从你的Jupyter笔记本启动Data Wrangler有三种方法

- 在Jupyter>变量面板中,在任何支持的数据对象旁边,你可以看到一个按钮可以启动数据整理器。
- 如果你的笔记本里有Pandas数据帧,运行输出数据帧的代码后,你现在可以在单元格底部看到一个打开“df”按钮(其中“df”是你的数据帧变量名)。这包括1)
df.head(), 2)df.tail(), 3)Display(DF), 4)打印(DF), 5)DF. - 在笔记本工具栏中,选择查看数据,会显示笔记本中所有支持的数据对象列表。然后你可以选择想在数据整理器中打开列表中的哪个变量。
直接从文件进行启动数据整理器
你也可以直接从本地文件(比如.csv).要做到这一点,可以在VS Code中打开包含你想打开的文件的任何文件夹。在文件资源管理器视图中,右键点击文件,点击“在数据整理器中打开”。

Data Wrangler 目前支持以下文件类型
.csv/.tsv.xls/.xlsx.拼花地板
根据文件类型,你可以指定文件的分隔符和/或文件表。

你也可以默认用数据整理器打开这些文件类型。
UI巡演
数据整理器在处理数据时有两种模式。每种模式的细节将在下文后续章节中详细说明。
- 观看模式:查看模式优化了界面,方便你快速查看、筛选和排序数据。这种模式非常适合对数据集进行初步探索。
- 编辑模式:编辑模式优化界面,方便你对数据集进行转换、清理或修改。当你在界面中应用这些转换时,Data Wrangler 会自动生成相关的 Pandas 代码,并可导出回你的笔记本中重复使用。
注意:默认情况下,数据整理器以查看模式打开。你可以在设置编辑器里更改这个行为。

观看模式接口

-
数据摘要面板显示您整体数据集的详细摘要统计数据,或如果选择了特定列。
-
你可以在列的头部菜单中对该列应用任何数据筛选/排序。
-
在数据整理器中切换查看模式或编辑模式,即可访问内置的数据作。
-
快速洞察页首是您可以快速查看每列宝贵信息的地方。根据列的数据类型,快速洞察显示数据的分布或数据点的频率,以及缺失和不同的值。
-
数据网格提供了一个可滚动的窗格,你可以查看整个数据集。
编辑模式界面
切换到编辑模式可启用Data Wrangler中的额外功能和用户界面元素。在下面的截图中,我们使用 Data Wrangler 将最后一列的缺失值替换为该列的中位数。

-
作面板是你可以搜索Data Wrangler所有内置数据作的地方。作按类别组织。
-
清洁步骤面板显示了之前应用的所有作列表。它允许用户撤销特定作或编辑最近的作。选择步骤会在数据差分视图中突出显示变化,并显示与该作相关的生成代码。
-
导出菜单允许你把代码导出回Jupyter笔记本,或者导出到新文件。
-
当你选中某个作并预览其对数据的影响时,网格会叠加你对数据所做的更改数据的差分视图。
-
代码预览部分显示 Data Wrangler 在选择作时生成的 Python 和 Pandas 代码。当未选择作时,它保持空。你可以编辑生成的代码,这样数据网格会突出显示对数据的影响。
数据整理器作
内置的数据整理器作可以从作面板中选择。

下表列出了目前在 Data Wrangler 初始版本中支持的作。我们计划在不久的将来增加更多运营。
| 运营 | 描述 |
|---|---|
| 排序 | 排序列(升序或降序) |
| 滤波器 | 基于一个或多个条件筛选行 |
| 计算文本长度 | 创建一个新列,取值等于文本列中每个字符串值的长度 |
| 单热编码 | 将类别数据拆分为每个类别的新列 |
| 多标签二分器 | 使用分隔符将类别数据拆分为每个类别的新列 |
| 从公式创建列 | 使用自定义的 Python 公式创建列 |
| 更换柱类型 | 更改列的数据类型 |
| 投放列 | 删除一列或多列 |
| 选择列 | 选择一个或多个列保留,删除其余 |
| 更名栏 | 重命名一个或多个列 |
| 克隆柱 | 创建一份或多列的副本 |
| 丢弃缺失值 | 移除缺失值的行 |
| 丢弃重复行 | 删除所有在一个或多个列中存在重复值的行 |
| 填充缺失值 | 用新值替换缺失值的单元格 |
| 查找并替换 | 用匹配的模式替换单元格 |
| 按列和总量分组 | 按栏分组及总计结果 |
| 带状空白空间 | 去除文本开头和结尾的空白 |
| 分割文本 | 根据用户自定义的分隔符将一列拆分为几列 |
| 第一个字符大写 | 将第一个字符转换为大写字母,剩余字符转换为小写字母 |
| 将文本转换为小写 | 将文本转换为小写 |
| 将文本转换为大写 | 将文本转换为大写 |
| 通过示例进行字符串变换 | 当检测到你提供的示例中的模式时,自动执行字符串变换 |
| 通过示例进行 DateTime 格式化 | 当从你提供的示例中检测到模式时,自动执行DateTime格式化 |
| 新柱示例 | 当从你提供的示例中检测到模式时,自动创建一列。 |
| 最小/最大值缩放 | 将数值列在最小值和最大值之间缩放 |
| 轮次 | 将数字四舍五入到指定的小数点 |
| 向下取整(地板) | 将数字向下取整至最接近的整数 |
| 向上取整(天花板) | 将数字向上取整至最近的整数 |
| 定制作 | 根据示例和现有列的推导自动创建新列 |
如果有缺少的作,并且希望Data Wrangler支持,请在我们的Data Wrangler GitHub仓库提交功能请求。
修改之前的步骤
生成代码的每个步骤都可以通过清洁步骤面板进行修改。首先,选择你想修改的步骤。然后,当你通过代码或作面板对作进行修改时,你对数据的影响会在网格视图中被突出显示。

编辑和导出代码
完成数据整理步骤后,有三种方式可以导出清理后的数据集。
- 导出代码回 Notebook 并退出:这会在你的 Jupyter 笔记本中创建一个新单元格,里面包含你生成的所有数据清理代码,打包成一个 Python 函数。
- 导出数据到文件:这样清理后的数据集会保存为新的CSV或Parquet文件到你的电脑上。
- 复制代码到剪贴板:它复制了Data Wrangler为数据清理作生成的所有代码。

搜索列
要在数据集中查找特定列,请从数据整理工具栏中选择“前往列”,并搜索相应列。

故障排除
内核连接性问题
关于一般连接问题,请参见上文“连接 Python 内核”部分关于替代连接方法的介绍。为了调试与本地 Python 解释器选项相关的问题,一种可能解决问题的方法是安装不同版本的 Jupyter 和 Python 扩展。例如,如果安装了稳定版本的扩展,你可能会安装预发布版本(反之亦然)。
要清除已经缓存的内核,你可以运行数据整理器:清除缓存运行时命令来自命令调色板 ⇧⌘P(Windows,Linux Ctrl+Shift+P)。
打开数据文件会得到UnicodeDecodeError(统一码码错误)
如果你遇到UnicodeDecodeError(统一码码错误)当直接从Data Wrangler打开数据文件时,这种情况可能由以下两种原因引起:
- 你试图打开的文件有其他编码方式,除了
UTF-8 - 文件损坏了。
要绕过这个错误,你需要从Jupyter笔记本中打开Data Wrangler,而不是直接从数据文件中打开。可以用 Jupyter Notebook 用 Pandas 读取文件,比如用 read_csv 方法。在阅读方法,使用以下编码和/或encoding_errors定义编码方式或处理编码错误的参数。如果你不知道哪种编码适用于这个文件,可以试试像chardet这样的库,试图推断出合适的编码。
问题与反馈
如果你遇到问题、功能请求或其他反馈,请在我们的GitHub仓库提交问题:https://github.com/microsoft/vscode-data-wrangler/issues/new/choose
数据与遥测
Microsoft Data Wrangler用于Visual Studio Code的扩展会收集使用数据并发送给Microsoft,以帮助改进我们的产品和服务。阅读我们的隐私声明以了解更多信息。该扩展尊重遥测。遥测水平你可以在 https://code.visualstudio.com/docs/configure/telemetry 上了解更多相关内容。