从 Excel 到 iModel · 第 4 章

数据透视表替代:筛选、去重与分组汇总

数据透视表替代,在工作流里被拆成了两个节点:GroupBy 和 Pivoting。大多数人其实只需要前一个。本章连同筛选与去重一起讲,这三件事是 Excel 用户日常做得最多的操作。

数据透视表替代,指的是把 Excel 里用透视表完成的分组与汇总,改成用节点来做。Excel 的透视表把「行」「列」「值」三件事打包在一个界面里;工作流把它拆开了 – 只要行和值用 GroupBy,需要把某个字段铺成列才用 Pivoting。

本章还会讲筛选和去重。这两件事在 Excel 里都是「改变当前视图」,在工作流里都是「产生一张新表」,差异比看起来大。

这个问题通常是这样被描述的

「每个月我要出一张各门店的销售汇总。先把上个月的订单筛出来,去掉几条重复导出的记录,然后插个数据透视表,行放门店,值放数量求和。做完复制到新文件发出去。下个月一模一样再来一遍。」

这三步 – 筛选、去重、汇总 – 是 Excel 用户日常做得最多的操作组合。第 2 章已经用过其中两个节点,这一章把三件事讲透。

本章沿用同一套虚构数据:订单表有订单号、门店编号、商品编号、数量、下单日期;商品表里有品类。

关键事实

筛选Row Filter(单条件)、Rule-based Row Filter(多条件规则)
去重Duplicate Row Filter
分组汇总(长表)GroupBy
分组汇总(宽表)Pivoting
Excel 对应功能筛选、删除重复项、数据透视表
共同特点输出的是新表,上游原表完整保留,随时可点开查看
常用聚合方式求和、计数、平均、最大、最小、去重计数、拼接
常见搭配JoinerSorterColumn Filter

数据透视表替代:GroupBy 还是 Pivoting

这是从 Excel 转过来最容易搞混的一处。先看结果形态就明白了。

原始数据

一行一条明细

门店品类数量
S001饮料30
S001零食20
S002饮料45
S002零食15

四行明细,要按门店看合计。

GroupBy 的结果

长表 · 分组一列 + 值一列

门店数量合计
S00150
S00260

按门店分组,数量求和。列数不变,行数变少。

Pivoting 的结果

宽表 · 把品类铺成列

门店饮料零食
S0013020
S0024515

品类的每个取值变成一列。这才是 Excel 透视表的形态。

图 1 同一份数据的两种汇总结果。区别只在于「有没有把某个字段铺成列」。

怎么选

问自己一句:结果表的列,是不是由数据内容决定的?

如果列固定(门店、数量合计),用 GroupBy。如果列要随数据变(有几个品类就出几列),用 Pivoting

实际项目里 GroupBy 用得远比 Pivoting 多。因为 Pivoting 的列数不稳定 – 下个月多了一个新品类,结果表就多一列,下游节点可能因此报错。做自动化流程时,长表比宽表安全。

做法上,GroupBy 的配置分两步:先选分组列(按什么分组),再选聚合列和聚合方式(对哪一列做什么运算)。Pivoting 多一步,还要选透视列(哪个字段铺成列)。

一个 Excel 用户容易漏的能力:GroupBy 可以对同一列同时做多种聚合,也可以对不同列做不同聚合 – 比如门店分组后,数量求和、订单号计数、单价取平均,三件事在一个节点里配完。Excel 透视表里要拖三次值字段才行。

筛选:和 Excel 的根本差异

Excel 里点筛选,是把不符合条件的行藏起来。原数据一行没少,取消筛选就回来了。

工作流里的 Row Filter 不是藏,是输出一张只包含符合条件那些行的新表。被过滤掉的行不进入下游。

Excel · 藏起来

同一张表,改变显示

  • 3 月 · S001 · 30
  • 2 月 · S001 · 22
  • 3 月 · S002 · 45
  • 4 月 · S002 · 18
数据还在原表里。好处是随手能取消,坏处是你无法把「筛过的结果」当成一个独立对象传给下一步。

工作流 · 出新表

上游原表完整保留

  • 3 月 · S001 · 30
  • 3 月 · S002 · 45
  • 上游节点里,另外两行还在
下游只看到筛过的结果,但原表并没有消失 – 点开 Row Filter 上游那个节点就能看到完整数据。

图 2 两种筛选模型。工作流里「数据没了」是错觉,它在上游节点手里。

这个差异带来一个实际好处:筛选条件是写下来的,不是点出来的。Excel 里你上个月勾了哪几个日期,三个月后没人记得;工作流里那个条件明明白白写在 Row Filter 的配置里,谁打开都能看见。

单条件用 Row Filter,多条件用 Rule-based Row Filter

只按一列筛(比如日期在某个区间、金额大于某个数),用 Row Filter

要写「A 列等于甲 B 列大于乙」这类组合条件,用 Rule-based Row Filter – 它让你按规则写表达式,一个节点里可以写多条规则。

去重:被删掉的行去哪了

Excel 的「删除重复项」是破坏性的:点下去数据就没了,只能靠撤销找回来,而且它不会告诉你删掉的是哪些。

Duplicate Row Filter 的默认行为和 Excel 一样 – 保留每组重复里的一条。但它多了一个选项:不删除,而是保留全部行并加一列标记,标出哪些是唯一的、哪些是被选中保留的、哪些是重复的。

建议的用法

第一次处理某份数据时,先用标记模式跑一遍,看清楚重复到底是什么样的 – 是完全一样的两行,还是只有关键字段重复而其他字段不同?这两种情况的处理方式完全不同。

看明白之后再决定是直接去重,还是先修数据。直接删掉的问题在于:你不知道自己删了什么。

这一点和第 3 章讲的 Joiner 未匹配端口是同一个思路:让异常可见,而不是让它静默消失。对做审计和对账的人来说,这个习惯的价值远超省下的那几分钟。

数据透视表替代:该用哪个

场景Excel 做法iModel 做法该用哪个
临时看某个门店的合计筛一下就看到了要建两个节点Excel
每月固定出汇总表每次重做透视表建一次,之后点执行iModel
结果要交给下一步继续算透视表不好当数据源输出就是标准数据表iModel
需要记录筛了什么条件点选记录不下来条件写在节点配置里iModel
想知道去重删掉了哪些删完就没了可保留并标记iModel
拖着字段来回试不同角度透视表拖拽很快改配置要重跑Excel
一次做多种聚合要拖多次值字段一个节点配完iModel
数据量大、每次都卡透视表刷新慢正常处理iModel

第四列是重点。探索阶段拖着字段来回试,Excel 透视表的交互效率仍然更高;固定下来、要重复出的报表,才值得搬到工作流里。

常见的适应难点

难点一:「数据被我删掉了吗」

用完 Row Filter 或 Duplicate Row Filter,看到行数少了一大截,本能反应是数据没了。

没有。点开上游那个节点的输出,完整数据还在。工作流里每个节点都保留自己的输出结果,删除是不可能发生的事 – 除非你去改源文件。这一点和 Excel 完全不同,也是工作流敢让你随便试的原因。

难点二:Pivoting 出来的列名很奇怪

Pivoting 的输出列名通常是「透视值 + 聚合方式」拼起来的,比如「饮料+Sum(数量)」。这是节点的默认命名规则,不是配错了。

如果结果要发给别人看,在后面接一个 Column Renamer 改成正常的名字。这也是为什么前面建议做自动化流程时优先用 GroupBy – 长表的列名是固定的,不需要每次改。

难点三:分组之后其他列不见了

GroupBy 只输出分组列和聚合列,没参与的列不会出现在结果里。这是设计如此 – 一个门店有二十条订单,那二十条的订单号该显示哪一个?

如果确实需要保留某列,把它也加进聚合,选「拼接」或「取第一个」这类聚合方式。

常见问题

看结果表的列是不是由数据内容决定。列固定就用 GroupBy,列要随数据变(有几个品类出几列)才用 Pivoting。做每月要重跑的自动化流程时优先 GroupBy,因为长表的列数稳定,下游节点不会因为多了一个新品类而报错。
可以,而且这是 GroupBy 比透视表方便的地方。同一个节点里可以配置:数量求和、订单号计数、单价取平均,三件事一起做。也可以对同一列做多种聚合,比如数量同时求和与求平均。
在。工作流里每个节点都保留自己的输出,Row Filter 的上游节点里是完整数据,随时可以点开看。被过滤掉的行只是不进入下游,没有被删除。想同时用完整数据和筛过的数据,从同一个上游节点拉两条线出去即可。
在 Duplicate Row Filter 的配置里选择保留全部行并添加标记列,执行后每一行会标出它是唯一的、被选中保留的还是重复的。看清楚之后再决定是直接去重还是先修数据。第一次处理某份数据时建议都先这样跑一遍。
在 GroupBy 后面接一个 Sorter 节点,选合计那一列,设为降序。工作流里排序是独立的一步,不像 Excel 透视表那样内置在里面 – 步骤多一个,但好处是排序规则同样被记录下来了。
通用。iModel 基于 KNIME 开源内核二次开发,本章几个节点的名称和行为一致,区别是 iModel 的界面与参数是中文的。用 KNIME 的读者按英文节点名对照即可,节点手册里有完整的参数中英对照。

相关内容

本章讲的是「选哪个、为什么」。每个节点的参数具体怎么配,在节点手册里:GroupByPivotingRow FilterDuplicate Row Filter

下一章讲公式 – 从 Excel 的单元格思维转到工作流的列思维,是这个系列里概念差异最大的一章。

装好就能跟着做

iModel Analytics Studio 是开源版本,免费、不限功能与使用时长。Windows 与麒麟、统信环境都是双击安装,本章的例子用几百行数据就能跑通。

下载六章合订 PDF 完整版 · 34 页,含全部图表,无需留资。

卡住了可以查 节点手册报错排查,也可以回到 本系列目录

iModel 专属客服
在线留言或电话联系
在线留言

留下您的问题和联系方式,我们会在一个工作日内回复。

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码