节点手册 · 数据清洗

KNIME Cell Splitter 一列拆成多列

Manipulation → Column → Split & Combine

一格里塞了「北京市/朝阳区/建国路」这种用分隔符连起来的内容,把它拆成三列。相当于 Excel 的分列。

它解决什么问题

源数据里常有把好几个信息挤在一格的情况:地址、全路径、「部门-岗位」、用逗号分隔的多个标签。要按其中某一段筛选或分组,得先拆开。

Excel Reader地址挤在一格
Cell Splitter按斜杠拆三列
Column Renamer省 / 市 / 街道
GroupBy按省汇总

拆完的列名是自动生成的编号形式,紧跟一个改名节点是标配。

基本信息

英文原名Cell Splitter
中文名称单元格拆分(iModel 中文界面)
输入端口1 个数据表
输出端口1 个,行数不变,多出若干列
输出类型拆出来的一律是文本。需要数字要再转

配置项逐条

  • 要拆的列与分隔符Column / Delimiter

    选列,填分隔符。分隔符可以是一个字符也可以是一串。先看清楚数据里到底用的是什么 – 中文数据里全角逗号和半角逗号混用非常常见,填错了就一列都拆不出来。

  • 拆成几列Set array size / Guess

    可以让它扫描数据自动推断列数,也可以手工指定。推荐手工指定 – 自动推断的结果随数据变,这个月的数据最多三段、下个月出现四段,输出列数就变了,下游跟着断。

    手工指定为三列时,超出的部分会被丢掉或者并入最后一列,不足的补空。哪种行为取决于配置,用之前拿几行试一下。

  • 输出形态Columns / List / Set

    拆成多列是最常用的。拆成列表适合段数不固定又想全部保留的场合 – 后面接 Ungroup 可以把列表还原成多行。

Cell Splitter 配置对话框
分隔符Delimiter
/ 中文数据注意全角与半角。一列都拆不出来,先查这一项。
拆成几列
自动推断手工指定 3 列 手工指定,输出结构才稳定。自动推断会随数据变,下游容易断。
输出形态
多列列表 段数不固定又要全保留时用列表,后面接 Ungroup 还原成多行。

三个常见坑

  1. 分隔符本身出现在数据里。地址里带斜杠、备注里带逗号,拆出来的段数就不对。这种情况没有好办法 – 要么换一个不会冲突的分隔符,要么回源头要结构化的数据。
  2. 段数不固定,有的三段有的四段。手工指定列数会丢信息,自动推断会让列数不稳。先用 String Manipulation 数一下分隔符出现几次,看分布再决定策略。
  3. 拆完忘了转类型。输出一律是文本。拆出来的邮编、金额、年份要拿去算,得再接一个类型转换。

什么时候该换别的节点

情况换成
只要取固定位置的几个字符String Manipulation 的 substr,比拆分轻
要反过来把几列拼成一列Column Combiner,或 String Manipulation 的 join
拆完想变成多行不是多列拆成列表再接 Ungroup
规则复杂,要靠正则提取String Manipulation 的正则函数

一列都拆不出来

九成是分隔符填错了。点开上游输出表,把那一格的内容复制出来看清楚用的是什么符号。

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

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

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码