Data Wrangler是一种以代码为中心的数据清理工具,已集成到 VS Code Insiders 和 VS Code Jupyter Notebooks 中。Data Wrangler 旨在通过提供丰富的用户界面来提高数据科学家进行数据清理的工作效率,该界面可以自动生成 Pandas 代码并显示有洞察力的列统计和可视化。
在最近的一项研究中,使用 Pandas dataframe 库的 Python 数据科学家报告说他们花费了大部分时间 (~51%) 来为他们的模型准备、清理和可视化数据。使用 Data Wrangler,可以在VS Code Insiders中无缝清理和探索您的数据。它提供了多种功能,可帮助你快速识别和修复错误、不一致和丢失的数据。您可以执行数据剖析和数据质量检查、可视化数据分布,并轻松将数据转换为需要的格式。此外,Data Wrangler 附带一个内置转换和可视化库,让你可以更加专注于数据,而不是代码。当你进行更改时,该工具会使用开源 Python 库为您执行的数据转换操作生成代码。可以更快地编写更好的数据准备程序并减少错误。
设置环境
-
Data Wrangler 仅支持 Python 3.7 或更高版本。
-
安装Visual Studio Code Insiders。
-
从 Visual Studio Code Insiders Marketplace安装适用于 VS Code Insiders 的 Data Wrangler 扩展。由 Microsoft 发布。
第一次启动 Data Wrangler 时,它会询问你要连接到哪个 Python 内核。它还将检查你的机器和环境以查看是否安装了任何必需的 Python 包(例如 Pandas)。
如果在你的计算机环境中找不到它们,Data Wrangler 将尝试通过 pip 安装它们。如果 Data Wrangler 无法安装依赖项,最简单的解决方法是手动运行 pip install,然后再次启动 Data Wrangler。Data Wrangler 需要这些依赖项,以便它可以生成 Python 和 Pandas 代码。
成功安装 Data Wrangler 后,有两种方法可以在 VS Code Insiders 中启动它。
从 Jupyter Notebook 启动 Data Wrangler
在使用 Pandas 数据框的 Jupyter Notebook 中,会看到在对数据框运行特定操作(例如 df.head())后,出现“启动 Data Wrangler”按钮。单击该按钮将在 VS Code Insiders 中打开一个新选项卡,其中包含 Data Wrangler 界面。
直接从 CSV 文件启动 Data Wrangler
还可以直接从本地 CSV 文件启动 Data Wrangler。在 VS Code Insiders 中打开你想要探索的 CSV 数据集的文件夹。在“文件资源管理器”面板中,右键单击 .CSV 数据集并单击“在 Data Wrangler 中打开”。
使用
Data Wrangler 界面分为 6 个组件,如下所述。
-
Quick Insights标题是您可以快速查看有关每一列的重要信息的地方。根据列的数据类型,Quick Insights 将显示数据的分布或数据点的频率,以及缺失值和唯一值。
-
数据网格为您提供了一个可滚动的窗格,您可以在其中查看整个数据集。此外,选择执行操作时,将在数据网格中说明预览,并突出修改的列。
-
您可以在操作面板中搜索 Data Wrangler 的所有内置数据操作。这些操作按其顶级类别进行组织。
-
摘要面板显示数据集或特定列的详细摘要统计信息(如果选择了一个)。根据数据类型,它将显示诸如最小值、最大值、列的数据类型、偏斜等信息。
-
操作历史面板显示了一个人类可读的列表,其中包含以前在当前数据整理会话中应用的所有操作。它使用户能够撤消特定操作或编辑最近的操作。选择一个步骤将突出显示数据网格中的更改,并将显示与该操作关联的生成代码。
-
代码预览部分将显示 Data Wrangler 在选择操作时生成的 Python 和 Pandas 代码。当没有选择操作时,它将保持空白。代码甚至可以由用户编辑,数据网格会突出显示对数据的影响。
让我们来看一个简单的示例,使用 Data Wrangler 和泰坦尼克号数据集来过滤船上的成年乘客。
我们将从查看年龄列的快速洞察开始,我们会注意到年龄的分布,并且最小年龄是 0.42。有关更多信息,我们可以浏览一下“摘要”面板,看到数据类型是浮点数,以及其他统计信息,例如所有乘客的平均年龄和中位年龄。
如果只过滤成年乘客,我们可以进入操作面板,搜索关键字“Filter”,找到Filter操作。(您也可以展开“排序和筛选”类别来找到它。)
选择操作后,我们将进入操作预览状态,在该状态下可以修改参数以查看它们在应用操作之前如何影响基础数据集。在此示例中,我们希望过滤数据集以仅包含成人,因此我们希望过滤年龄列以仅包含大于或等于 18 的值。
在操作面板中输入参数后,我们可以预览数据将发生的变化。我们会注意到 Quick Insights 中年龄的最小值现在是 18,以及正在删除的行的视觉预览以红色突出显示。最后,我们还会注意到代码预览部分会自动显示 Data Wrangler 生成的用于执行此 Filter 操作的代码。我们可以编辑这段代码,比如把过滤后的年龄改成21岁,数据网格就会自动更新。
确认操作达到预期效果后,我们就可以点击应用了。
编辑和导出代码
生成代码的每一步都可以修改。进行更改时,对数据所做的更改将在网格视图中突出显示。
在 Data Wrangler 中完成数据清理步骤后,可以通过 3 种方法从 Data Wrangler 导出清理后的数据集。
-
将代码导出回 Notebook 并退出:这会在你的 Jupyter Notebook 中创建一个新单元格,并将你生成的所有数据清理代码打包到一个干净的 Python 函数中。
-
将数据导出为 CSV:这会将清理后的数据集作为新的 CSV 文件保存到您的计算机上。
-
将代码复制到剪贴板:这将复制 Data Wrangler 为数据清理操作生成的所有代码。
注意:如果直接从 CSV 启动 Data Wrangler,第一个导出选项将是将代码导出到新的 Jupyter Notebook 中。
Data Wrangler 可操作选项
排序值 | 对列进行升序或降序排序 |
筛选 | 根据一个或多个条件筛选行 |
计算文本长度 | 创建新列,其值等于文本列中每个字符串值的长度 |
一次性编码 | 将分类数据拆分为每个类别的新列 |
多标签二值化器 | 使用分隔符将分类数据拆分为每个类别的新列 |
从公式创建列 | 使用自定义 Python 公式创建列 |
更改列类型 | 更改列的数据类型 |
删除列 | 删除一列或多列 |
选择列 | 选择一列或多列保留并删除其余列 |
重命名列 | 重命名一列或多列 |
删除缺失值 | 删除具有缺失值的行 |
删除重复行 | 删除在一列或多列中具有重复值的所有行 |
填补缺失值 | 用新值替换具有缺失值的单元格 |
查找和替换 | 用完全匹配的模式替换单元格 |
按列分组并聚合 | 按列分组并汇总结果 |
去除空白 | 删除文本开头和结尾的空格 |
拆分文本 | 根据用户定义的分隔符将一列拆分为多列 |
将文本转换为大写 | 将字符串的第一个字符大写,并可以选择应用于所有单词 |
将文本转换为小写 | 将文本转换为小写 |
将文本转换为大写 | 将文本转换为大写 |
字符串转换示例 | 从您提供的示例中检测到模式时自动执行字符串转换 |
日期时间格式示例 | 从您提供的示例中检测到模式时自动执行 DateTime 格式化 |
新列示例 | 当从您提供的示例中检测到模式时自动创建一个列。 |
缩放最小/最大值 | 在最小值和最大值之间缩放数字列 |
自定义操作 | 根据示例和现有列的派生自动创建新列 |