Table Pivot 步骤
用于将长而窄的数据表转换为短而宽的数据表。所选列会被转置,列名称转换为跨多列的值。
最容易理解的例子也许是将月份作为行列出的数据表:
对该数据表进行透视,会将所有月份行转换为列。
Month 的值变为 Jan/Feb 列,与逆透视相反。通过指定要转置的列和保持不变的列,这成为一个强大的工具。在其他 ETL 工具中完成这种转换可能需要多出十几个步骤。
源和目标参数
Section titled “源和目标参数”
要建立源和目标,请先使用下拉菜单选择要提取的数据表。
目标表

要设置目标表,可以通过目标表下拉列表选择现有表作为目标表,也可以单击绿色的 “+” 号新建一个表作为目标。
创建表
新建表时,您可以选择将其创建为视图或表。
视图:
视图的优点是步骤的执行时间明显短于使用表的情况。缺点是视图在表的详细信息模式下不便于探索数据。
表:
使用表作为目标时,步骤的执行时间会更长,但在详细信息模式下探索数据比使用视图快得多。
要转换为列标题的类别列 用于指定源表中要透视为行的列。 要透视为列值的值列 是包含源表中值的列。 值聚合选项 用于指定数据的聚合方式。
这两列都必须是 表数据选择 选项卡上步骤的输出列之一。否则保存会被拒绝,例如提示 The category column ‘month’ isn’t one of the step’s output columns.
表单还包含以下字段:
- 保存各类别位置的列(
column_order):保存各类别位置的源列。透视后的列按其升序排列,而不是按名称排序。该列既不用于分组,也不会写入。 - 透视列名称模板(
column_name_template):用此文本为每个透视列命名,其中{value}会替换为类别值,例如{value}+Sum。

表数据选择选项卡用于将源数据表中的列映射到目标数据表。窗口左侧的所有源列会自动映射到窗口右侧所示的目标数据表。使用 检查源 菜单按钮,还有几种将列从源映射到目标的方式:
- 填充两个映射表:将源数据表中的所有值传播到目标数据表。这是默认设置。
- 仅填充源映射表:仅映射源数据表中的所有值。当源列结构发生变化而需要修改现有工作流时,这很有用。
- 仅填充目标映射表:仅将所有值传播到目标数据表。
除了这些选项之外,每个选项还提供预览源数据的功能。
选择了源表但没有源列或目标列就保存时,会从源表填充空的一侧,效果与 填充两个映射表 相同。
如果源和目标列选项还不够,还可以通过几种不同的方式将其他列添加到目标数据表中:
- 全部传播 会将所有源列插入目标数据表,无论它们是否已存在。
- 传播所选项 仅插入所选的源列。
- 在目标一侧右键单击并选择 插入行,可在当前所选行的正上方插入一行。
- 在目标一侧右键单击并选择 追加行,可在目标数据表的底部(最右侧)插入一行。
要从目标数据表中删除列,请选择所需的列,然后右键单击并选择 删除。
要重新排列目标数据表中的列,请选择所需的列,然后右键单击并选择 移到顶部、上移、下移 或 移到底部。
要仅返回非重复的选项,请选择 非重复 菜单选项。这会为源中的每一列切换出一组复选框。只需选中相应列旁边的任意复选框,即可仅返回非重复的结果。
要聚合结果,请选择 汇总 菜单选项。这会为目标数据表中的每一列切换出一组下拉框。可使用以下汇总选项:
- 分组依据(默认设置)
- 求和
- 最小值
- 最大值
- 第一个
- 最后一个
- 计数
- 平均值
- 中位数
- 众数
- 标准差
- 方差
- 乘积
- 绝对值
- 分位数
- 偏度
- 峰度
- 平均绝对偏差
- 累计求和
- 累计最小值
- 累计最大值
- 累计乘积
为了获得最大的灵活性,源数据和目标数据都可以使用数据筛选器。对于较大的数据集,在源上筛选出行尤其有益,这样其余操作会在较小的数据集上执行。
选择数据子集
Section titled “选择数据子集”可以使用任何有效的 Python 表达式来选取数据子集。更多详细信息和示例,请参阅表达式。
对结果数据应用二级筛选器
Section titled “对结果数据应用二级筛选器”可以使用任何有效的 Python 表达式来选取数据子集。更多详细信息和示例,请参阅表达式。
最终数据表切片(限制)
Section titled “最终数据表切片(限制)”要限制数据,只需选中 应用行切片器 框,然后指定以下内容:
- 要跳过的起始行数: 要跳过的数据行数(计数不包括列标题行)
- 结束行: 要包含的最后一行数据。这与直接计算末尾要丢弃的行数不同