转换为 CSV

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

将数据输入转换为以逗号分隔的值格式

类别: 数据格式转换

注意

仅适用于机器学习 Studio (经典)

可在 Azure 机器学习设计器中获取类似的拖放模块。

模块概述

本文介绍如何使用 机器学习 Studio 中的“转换为 CSV”模块 (经典) ,将数据集从 Azure ML转换为 CSV 格式,这些格式可以下载、导出或与 R 或 Python 脚本模块共享。

有关 CSV 格式的详细信息

CSV 格式(代表“逗号分隔值”)是许多外部机器学习工具使用的一种文件格式。 尽管机器学习使用的本机数据集格式基于 .NET 数据表,因此可由 .NET 库读取,但使用 R 或 Python 等开源语言时,CSV 是一种常见的交换格式。

即使你在 机器学习 Studio 中执行大部分工作, (经典) ,有时你可能会发现将数据集转换为 CSV 以在外部工具中使用。 例如:

  • 下载 CSV 文件以使用 Excel 打开它,或将其导入到关系数据库中。
  • 将 CSV 文件保存到云存储,并从 Power BI 连接到它以创建可视化效果。
  • 使用 CSV 格式准备要在 R 和 Python 中使用的数据。 只需右键单击模块的输出即可生成直接从 Python 或 Jupyter 笔记本访问数据所需的代码。

将数据集转换为 CSV 时,该文件将保存在 Azure ML 工作区中。 你可以使用 Azure 存储实用工具直接打开并使用该文件,也可以右键单击模块输出并将 CSV 文件下载到你的计算机上,或在 R 或 Python 代码中使用它。

如何配置“转换为 CSV”

  1. “转换为 CSV ”模块添加到试验。 可以在 Studio (经典) 的“数据格式转换 ”组中找到此模块。

  2. 将它连接到可以输出数据集的任何模块。

  3. 运行试验,或单击 “转换为 CSV ”模块,然后单击 “运行”选择

结果

双击转换为 CSV 的输出,然后选择以下选项之一。

  • 下载:立即打开 CSV 格式的数据副本,可以保存到本地文件夹。 如果未指定文件夹,则会应用默认文件名,并将 CSV 文件保存在本地下载库中。

    如果选择 “下载数据集”,则必须指示是要打开数据集,还是将其保存到本地文件。

    如果选择“打开”,则使用默认与.CSV文件关联的应用程序加载数据集:例如,Microsoft Excel。

    如果选择 “下载数据集”,则默认情况下,该文件将随模块名称以及表示工作区 ID 的 GUID 一起保存。 但是,可以在下载过程中选择 “另存为 ”选项,并更改文件名或位置。

  • 另存为数据集:将 CSV 文件保存回 Azure ML工作区作为单独的数据集。

  • 生成数据访问代码:Azure ML生成两组代码,供你使用 Python 或 R 访问数据。若要访问数据,请将代码片段复制到应用程序中。

  • 在新笔记本中打开:会为你创建一个新的 Jupyter 笔记本,并插入用于从工作区读取数据的代码,使用所选语言:Python 2、Python 3 或 R 和 Microsoft R Open。

    例如,如果选择 R 选项,则会提供示例 R 代码,以便将 CSV 文件加载到数据帧中,并使用 head 函数显示前几行。

技术说明

本部分包含实现详情、使用技巧和常见问题解答。

CSV 格式的要求

CSV 文件格式是许多机器学习框架支持的常用格式。 格式以各种方式称为“逗号分隔值”或“字符分隔值”。

CSV 文件以纯文本形式存储表格式数据(数字和文本)。 CSV 文件包含任意数量的由某种换行分隔的记录。 每个记录由用文本逗号分隔的字段组成。 在某些区域中,分隔符可能是分号。

通常,所有记录具有相同数量的字段,缺失值表示为 null 或空字符串。

提示

可以轻松地将数据从 Excel、Access 或关系数据库导出到 CSV 文件中,以用于机器学习。 尽管文件名通常具有.CSV扩展名,但如果要将数据导入为 CSV,则机器学习不需要存在此文件扩展名。 可以将 XLSX、TXT 和其他文件导入为 CSV。 但是,文件中的字段必须按照上一部分所述进行格式设置,并且该文件必须使用 UTF-8 编码。

常见问题

本部分介绍特定于 “转换为 CSV ”模块的一些已知问题、常见问题和解决方法。

标头必须是单行

机器学习中使用的 CSV 文件格式支持单个标头行。 不能插入多行标题。

导入时支持的自定义分隔符,但不支持导出

“转换为 CSV”模块不支持生成替代列分隔符,例如通常在欧洲使用的分号 (;) 。

但是,从外部存储中的 CSV 文件导入数据时,可以指定备用分隔符。 在 “导入数据 ”模块中,选择 包含编码 选项的 CSV,然后选择受支持的编码。

包含逗号的字符串数据的列分隔不准确

文本处理中存在一个常见问题,即几乎每个字符都可以在文本字段中随机找到, (制表符、空格、逗号 ) 等。 从 CSV 导入文本始终需要谨慎,以避免在不必要的新列中分隔文本。

尝试导出包含逗号的字符串数据的列时,也可能会遇到问题。 机器学习不支持此类数据的任何特殊处理或特殊转换,例如将字符串括在引号中。 此外,不能在逗号之前使用转义字符来确保逗号作为文本字符进行处理。

因此,将为字符串字段中遇到的每个逗号在输出文件中创建新字段。 若要避免此问题,有几种解决方法:

需要 UTF-8 编码

“转换为 CSV”模块仅支持 UTF-8 字符编码。 如果需要使用不同的编码导出数据,可以尝试使用 执行 R 脚本执行 Python 脚本 模块生成自定义输出。

数据集没有列名

如果要导出到 CSV 文件的数据集没有列名,建议在转换前使用 “编辑元数据 ”添加列名。 不能在转换或导出过程中添加列名。

SYLK:文件格式无效

如果转换为 CSV 的数据集的第一列具有名称 ID,则尝试在 Excel 中打开文件时,可能会收到以下错误:

“SYLK:文件格式无效。

若要避免此错误,必须重命名列。

我需要有关从 CSV 导入的帮助

若要导入,请不要使用 导出到 CSV 模块。 请改用 导入数据 模块。

有关从 CSV 导入的常规信息,请参阅以下资源:

预期输入

名称 类型 说明
数据集 数据表 输入数据集

输出

名称 类型 说明
结果数据集 GenericCsv 输出数据集

另请参阅

数据格式转换
A-Z 模块列表