转置您的数据
注意:从版本 2020.4.1 开始,您现在可以在 Tableau Server 和 Tableau Cloud 中创建和编辑流程。除非特别指出,本主题中的内容适用于所有平台。有关在 Web 上制作流程的详细信息,请参见 Tableau Server(链接在新窗口中打开) 和 Tableau Cloud(链接在新窗口中打开) 帮助中的 Web 上的 Tableau Prep。
有时候,使用Tableau分析电子表格或者横向表格(交叉数据)的数据会遇到一些困难。Tableau更倾向于数据是一行一行的“高高的数据”(行数据),而不是一列一列的“很宽很长的数据”(列数据),这就需要我们把列数据转置为行数据。
但是,可能还会有一些数据表既长又窄,并且太过标准化而无法正常分析的情况。例如,销售部门在两个列中跟踪广告支出,一个列名为“Advertising”(广告),其中包含表示“radio”(广播广告)、“television”(电视广告)和“print”(印刷广告)的行,而另一个列则表示总支出。在这种情况下,若要将此数据作为单独的度量进行分析,您将需要将该行数据转置为列。
但如果转置较大的数据集或在一段时间内频繁更改的数据,会怎么样?您可以使用通配符模式匹配来搜索与模式匹配的字段,并自动转置数据。
在转置数据时,使用以下选项之一:
将列转置为行
使用通配符搜索,根据模式匹配即时转置字段(Tableau Prep Builder 版本 2019.1.1 及更高版本和在 Web 上)。
- 将行转置为列(Tableau Prep Builder 版本 2019.1.1 及更高版本和在 Web 上)。
不管如何转置字段,您都可以直接与结果交互,并执行任何额外的清理操作,让数据看起来恰如您所需。您还可以使用 Tableau Prep 的智能默认命名功能来自动重命名已转置的字段和值。
将列转置为行
使用此转置选项将宽数据转换为高数据。在一个或多个字段组上将列转置为行。选择要处理的字段,并将数据从列转置为行。
连接到您的数据源。
将要进行转置的表拖到“流程”窗格。
执行以下操作之一:
- Tableau Prep Builder 版本 2019.4.2 及更高版本和在 Web 上:在“配置”窗格中,选择要转置的字段,然后右键单击或按住 Ctrl 单击 (MacOS),并从菜单中选择“将列转置为行”。如果使用此选项,请跳到步骤 7。
所有版本:单击加号 图标,并从上下文菜单中选择“添加转置”。
选择字段(Tableau Prep Builder 版本 2019.4.2 及更高版本和在 Web 上) 流程步骤菜单(所有版本)
(可选)在“字段”窗格的“搜索”字段中输入一个值,以在字段列表中搜索要转置的字段。
- (可选)选中“自动重命名转置的字段和值”复选框,使 Tableau Prep 能够使用数据中的常用值重命名新的转置字段。如果找不到常用值,则使用默认名称。
从左侧窗格中选择一个或多个字段,并将这些字段拖到“转置的字段”窗格中的“转置 1 值”列。
(可选)在“转置的字段”窗格中,单击加号 图标添加要进行转置的更多列,然后重复上面的步骤以选择要进行转置的更多字段。结果将立即出现在“转置结果”窗格和数据窗格中。
注意:您选择的字段数必须与在步骤 5 中选择的字段数相同。举例来说,如果选择了 3 个字段对其进行最初转置,则您进行转置的每个后续列也必须包含 3 个字段。
如果未启用默认命名选项或者 Tableau Prep 无法自动检测名称,请编辑字段的名称。您也可以在此窗格中编辑原始字段的名称,以对数据进行最恰当地描述。
(可选)重命名新的“转置”步骤以跟踪更改。例如“转置月份”。
若要在数据更改时刷新转置数据,请运行流程。如果将需要添加到转置的新字段添加到数据源,请将它们手动添加到转置。
示例:对多个字段进行转置
此示例按月和年显示药品销售额、税款和总计的电子表格。
通过对数据进行转置,您可以为每个月份和年度创建行,并为销售额、税款和总计创建单独的列,以便 Tableau 能够更轻松地解读此数据来进行分析。
观看“对多个字段进行转置”的实际运行效果。
使用通配符搜索进行转置
如果使用大数据集或者数据在一段时间内频繁更改,从 Tableau Prep Builder 版本 2019.1.1 开始和在 Web 上,您可以在将列转置为行时使用通配符搜索,以便根据通配符模式匹配即时转置数据。
如果添加或移除了与模式匹配的新字段,Tableau Prep 会在运行流程时检测到架构更改,并且转置结果会自动更新。
连接到您的数据源。
将要进行转置的表拖到“流程”窗格。
单击加号 图标,并从上下文菜单中选择“添加转置”。
在“转置的字段”窗格中,单击“使用通配符搜索进行转置”链接。
输入要搜索的值或部分值。例如,输入“Sales_”以匹配标为“sales_2017”(2017 年销售额) 、“sales_2018”(2018 年销售额)和“sales_2019”(2019 年销售额)的字段。
不要使用星号来匹配模式,除非星号是所搜索的字段值的一部分。相反,请单击“搜索选项” 按钮来选择所需的值匹配方式。然后按 Enter 应用搜索并转置匹配的值。
(可选)在“转置的字段”窗格中,单击加号 图标添加要进行转置的更多列,然后重复上面的步骤以选择要进行转置的更多字段。
如果未启用默认命名选项或者 Tableau Prep 无法自动检测名称,请编辑字段的名称。
若要在数据更改时刷新转置数据,请运行流程。系统会自动检测到添加到数据源并与通配符模式匹配的任何新字段,并将其添加到转置。
如果结果不是预期结果,请尝试以下选项之一:
在“搜索”字段中输入其他值模式,并按 Enter。转置将自动刷新并显示新结果。
将其他字段手动拖到“转置的字段”窗格中的“转置 1 值”列。您也可以移除手动添加的字段,方法是将它们拖离“转置 1 值”列并放到“字段”窗格中。
注意:对于依据通配符搜索结果添加的字段,无法通过将它们拖离“转置 1 值”列来移除。作为替代,请尝试使用更具体的模式来匹配所查找的搜索结果。
将行转置为列
在 Tableau Prep Builder 版本 2019.1.1 及更高版本中和 Web 上,如果数据过于规范化,并且需要创建新列,请将行转置为列 - 从高数据转置为更宽的数据。
举例来说,假设您有每个月的广告成本数据,其中每个月都在一列中包括了所有广告类型。如果您将数据从行转置为列,则每种广告类型会变为拥有单独的一列,从而使数据更易于分析。
您可以选择一个要转置的字段。随后将使用该字段的字段值来创建新列。然后,选择一个要用于填充新列的字段。这些字段值是聚合的,您可要选择要应用的聚合类型。
由于应用了聚合,因此将列转置回行将不会反向进行此转置操作。若要逆转行到列转置类型,您将需要撤消操作。在顶部菜单中单击“撤消”按钮、从“转置的字段”窗格中移除字段,或删除转置步骤。
连接到您的数据源。
将要进行转置的表拖到“流程”窗格。
单击加号 图标,并从上下文菜单中选择“添加转置”。
在“转置的字段”窗格中,从下拉列表中选择“行转置为列”。
- (可选)在“字段”窗格的“搜索”字段中输入一个值,以在字段列表中搜索要转置的字段
从左侧窗格中选择一个字段,并将其拖到“转置的字段”窗格中的“将从行转置为列的字段”部分。
注意:如果要转置的字段具有日期或日期时间数据类型,则需要将数据类型更改为字符串才能对其进行转置。
此字段中的值将用于创建和命名新列。您可以稍后在“转置结果”窗格中更改列名称。
从左侧窗格中选择一个字段,并将其拖到“转置的字段”窗格中的“要为新列聚合的字段”部分。此字段中的值用于填充通过上一步创建的新列。
系统会为字段分配一个默认聚合类型。单击聚合类型可对其进行更改。
在“转置结果”窗格中,查看结果并向您创建的新列应用任何清理操作。
如果正在转置的字段的行数据发生变化,请在流程窗格中右键单击或按住 Ctrl 并单击 (MacOS)“转置”步骤,并选择“刷新”。