VS Code 中的数据整理器入门
数据整理器 是一款以代码为中心的,集成到 VS Code 和 VS Code Jupyter 笔记本中的数据查看和清理工具。它提供了一个丰富的用户界面来查看和分析你的数据,展示有见地的列统计信息和可视化,并在你清理和转换数据时自动生成 Pandas 代码。
以下是如何从笔记本打开数据整理器以使用内置操作分析和清理数据的示例。然后,自动生成的代码将导出回笔记本。
本文档介绍如何
- 安装和设置数据整理器
- 从笔记本启动数据整理器
- 从数据文件启动数据整理器
- 使用数据整理器探索你的数据
- 使用数据整理器对你的数据进行操作和清理
- 将数据整理代码编辑并导出到笔记本
- 故障排除和提供反馈
设置你的环境
- 如果你还没有这样做,请安装 Python。重要:数据整理器仅支持 Python 3.8 或更高版本。
- 安装 Visual Studio Code.
- 安装数据整理器扩展
当你第一次启动数据整理器时,它会询问你想要连接到哪个 Python 内核。它还会检查你的机器和环境,以查看是否安装了所需的 Python 包,例如 Pandas。
以下是 Python 和 Python 包的所需版本列表,以及它们是否由数据整理器自动安装
名称 | 最低所需版本 | 自动安装 |
---|---|---|
Python | 3.8 | 否 |
pandas | 0.25.2 | 是 |
如果在你的环境中找不到这些依赖项,数据整理器会尝试使用 pip
为你安装它们。如果数据整理器无法安装依赖项,最简单的解决方法是手动运行 pip install
,然后再次启动数据整理器。这些依赖项是数据整理器所必需的,这样它才能生成 Python 和 Pandas 代码。
打开数据整理器
无论何时你在数据整理器中,你都处于一个沙箱环境中,这意味着你可以安全地探索和转换数据。原始数据集不会被修改,除非你明确导出你的更改。
从 Jupyter 笔记本启动数据整理器
有三种方法可以从 Jupyter 笔记本启动数据整理器
- 在Jupyter > 变量面板中,在任何支持的数据对象旁边,你可以看到一个启动数据整理器的按钮。
- 如果你在笔记本中有一个 Pandas 数据帧,你可以在运行输出数据帧的代码后,在单元格的底部看到一个在数据整理器中打开“df”按钮(其中“df”是你的数据帧的变量名)。这包括 1)
df.head()
,2)df.tail()
,3)display(df)
,4)print(df)
,5)df
。 - 在笔记本工具栏中,选择查看数据会弹出一个列表,其中包含笔记本中所有支持的数据对象。然后,你可以选择要使用数据整理器打开的列表中的哪个变量。
直接从文件启动数据整理器
你也可以直接从本地文件(例如 .csv
)启动数据整理器。为此,请在 VS Code 中打开包含你想要打开的文件的任何文件夹。在文件资源管理器视图中,右键单击文件,然后单击在数据整理器中打开。
数据整理器目前支持以下文件类型
.csv
/.tsv
.xls
/.xlsx
.parquet
根据文件类型,你可以指定文件的分隔符和/或工作表。
你也可以将这些文件类型设置为默认情况下使用数据整理器打开。
UI 导览
数据整理器在处理你的数据时有两种模式。每种模式的详细信息在下面的后续部分中解释。
- 查看模式:查看模式优化了界面,以便你快速查看、过滤和排序数据。这种模式非常适合对数据集进行初步探索。
- 编辑模式:编辑模式优化了界面,以便你对数据集应用转换、清理或修改。当你在界面中应用这些转换时,数据整理器会自动生成相关的 Pandas 代码,并且可以将这些代码导出回你的笔记本以供重复使用。
注意:默认情况下,数据整理器在查看模式下打开。你可以在设置编辑器中更改此行为 .
查看模式界面
-
数据摘要面板显示了你的整个数据集或特定列(如果选择了任何列)的详细摘要统计信息。
-
你可以从列的标题菜单中应用任何数据过滤器/排序到该列。
-
在数据整理器的查看或编辑模式之间切换,以访问内置数据操作。
-
快速洞察标题是你可以快速查看有关每一列的有价值信息的地方。根据列的数据类型,快速洞察显示了数据的分布或数据点的频率,以及缺失值和不同值。
-
数据网格提供了一个可滚动面板,你可以在其中查看你的整个数据集。
编辑模式界面
切换到编辑模式会在数据整理器中启用额外的功能和用户界面元素。在下面的屏幕截图中,我们使用数据整理器将最后一列中的缺失值替换为该列的中位数。
-
操作面板是你可以搜索数据整理器所有内置数据操作的地方。操作按类别进行组织。
-
清理步骤面板显示了已应用的所有操作的列表。它允许用户撤消特定操作或编辑最近的操作。选择一个步骤将突出显示数据差异视图中的更改,并将显示与该操作相关联的生成代码。
-
导出菜单允许你将代码导出回 Jupyter 笔记本或将数据导出到新文件。
-
当你选择一个操作并预览它对数据的影響时,网格会覆盖一个数据差异视图,显示你对数据所做的更改。
-
代码预览部分显示了当选择一个操作时数据整理器生成的 Python 和 Pandas 代码。当没有选择操作时,它将保持为空。你可以编辑生成的代码,这将导致数据网格突出显示对数据的影响。
数据整理器操作
内置的数据整理器操作可以从操作面板中选择。
下表列出了数据整理器操作,这些操作目前在数据整理器的初始版本中受支持。我们计划在不久的将来添加更多操作。
操作 | 描述 |
---|---|
排序 | 对列进行升序或降序排序 |
过滤 | 根据一个或多个条件过滤行 |
计算文本长度 | 创建一个新列,其值等于文本列中每个字符串值的长度 |
独热编码 | 将分类数据拆分为每个类别的新列 |
多标签二值化器 | 使用分隔符将分类数据拆分为每个类别的新列 |
根据公式创建列 | 使用自定义 Python 公式创建列 |
更改列类型 | 更改列的数据类型 |
删除列 | 删除一个或多个列 |
选择列 | 选择一个或多个要保留的列,并删除其余列 |
重命名列 | 重命名一个或多个列 |
克隆列 | 创建一个或多个列的副本 |
删除缺失值 | 删除包含缺失值的行 |
删除重复行 | 删除在一个或多个列中具有重复值的所有行 |
填充缺失值 | 用新值替换包含缺失值的单元格 |
查找和替换 | 替换与匹配模式的单元格 |
按列分组并聚合 | 按列分组并聚合结果 |
去除空格 | 从文本的开头和结尾删除空格 |
拆分文本 | 根据用户定义的分隔符将列拆分为多个列 |
首字母大写 | 将第一个字符转换为大写,其余字符转换为小写 |
将文本转换为小写 | 将文本转换为小写 |
将文本转换为大写 | 将文本转换为大写 |
根据示例进行字符串转换 | 当从您提供的示例中检测到模式时,自动执行字符串转换 |
根据示例进行日期时间格式化 | 当从您提供的示例中检测到模式时,自动执行日期时间格式化 |
根据示例创建新列 | 当从您提供的示例中检测到模式时,自动创建列。 |
缩放最小/最大值 | 将数值列缩放至最小值和最大值之间 |
四舍五入 | 将数字四舍五入到指定的小数位数 |
向下取整(floor) | 将数字向下取整到最接近的整数 |
向上取整(ceiling) | 将数字向上取整到最接近的整数 |
自定义操作 | 根据示例和现有列的推导自动创建一个新列 |
如果您需要某个操作,并且希望在 Data Wrangler 中看到支持,请在我们的 Data Wrangler GitHub 仓库 中提交功能请求。
修改之前的步骤
可以通过“清理步骤”面板修改生成的代码的每个步骤。首先,选择您要修改的步骤。然后,当您对操作进行更改时(无论是通过代码还是操作面板),您在网格视图中所做更改对数据的影響将被突出显示。
编辑和导出代码
完成 Data Wrangler 中的数据清理步骤后,可以使用三种方法从 Data Wrangler 导出清理后的数据集。
- **将代码导出回笔记本并退出:**这将在您的 Jupyter Notebook 中创建一个新单元格,其中包含您生成的所有数据清理代码,打包成一个 Python 函数。
- **将数据导出到文件:**这将清理后的数据集保存为新的 CSV 或 Parquet 文件到您的计算机上。
- **将代码复制到剪贴板:**这将复制 Data Wrangler 为数据清理操作生成的全部代码。
搜索列
要查找数据集中的特定列,请从 Data Wrangler 工具栏中选择“转到列”,然后搜索相应的列。
故障排除
常规内核连接问题
有关常规连接问题,请参阅上面的“连接到 Python 内核”部分,了解连接的替代方法。要调试与本地 Python 解释器选项相关的問題,解决问题的潜在方法之一是安装不同版本的 Jupyter 和 Python 扩展。例如,如果安装了稳定版本的扩展,您可能会安装预发布版本(反之亦然)。
要清除已缓存的内核,您可以从命令面板 ⇧⌘P (Windows, Linux Ctrl+Shift+P) 运行 Data Wrangler: Clear cached runtime
命令。
打开数据文件时出现 UnicodeDecodeError
如果您在直接从 Data Wrangler 打开数据文件时遇到 UnicodeDecodeError
,则可能是由以下两个可能的问题导致的
- 您尝试打开的文件的编码不是
UTF-8
- 文件已损坏。
要解决此错误,您需要从 Jupyter Notebook 而不是直接从数据文件打开 Data Wrangler。使用 Jupyter Notebook 使用 Pandas 读取文件,例如使用 read_csv 方法。在 read
方法中,使用 encoding
和/或 encoding_errors
参数定义要使用的编码或如何处理编码错误。如果您不知道哪种编码可能适合此文件,您可以尝试使用 chardet 等库来推断有效的编码。
问题和反馈
如果您遇到问题、有功能请求或其他反馈,请在我们的 GitHub 仓库中提交问题: https://github.com/microsoft/vscode-data-wrangler/issues/new/choose
数据和遥测
适用于 Visual Studio Code 的 Microsoft Data Wrangler 扩展会收集使用数据并将其发送给 Microsoft,以帮助我们改进产品和服务。阅读我们的 隐私声明 了解更多信息。此扩展会尊重 telemetry.telemetryLevel
设置,您可以通过 https://vscode.js.cn/docs/getstarted/telemetry 了解更多信息。