You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Dataprep值插入及三位ZIP码补全问题求助

Google Cloud Dataprep 问题解答

1. 如何在Google Cloud Dataprep中插入值?

插入值的方式取决于你的具体场景,这里给你几种实用的实现方法:

  • 给现有列的指定位置插入内容
    如果是要在列内容的开头、结尾或者中间固定位置插入值,用CONCAT或INSERT函数就能搞定:

    • 开头/结尾插入:比如要在zip_code列前加'US-',直接写CONCAT('US-', zip_code),然后把结果保存为新列或者覆盖原列;结尾加内容的话就是CONCAT(zip_code, '-CA')。
    • 中间特定位置插入:比如要在第3个字符后插入横杠,用INSERT(zip_code, 3, 0, '-'),这里的0表示不删除原有字符,只插入新内容。
  • 新增列并插入固定/条件值
    直接添加新列,然后用赋值操作:

    • 插入固定值:比如新列默认填充'pending',直接在公式框里写'pending'就行。
    • 插入条件值:用CASE WHEN语句,比如根据order_status列的值插入不同标记:CASE WHEN order_status = 'completed' THEN '1' ELSE '0' END。
  • 插入新数据行
    Dataprep没有直接插入空行的按钮,一般可以通过两种方式实现:要么导入包含要插入行的数据集,然后用合并操作拼接;要么用窗口函数生成行号,再交叉连接一个包含空值的小数据集来生成新行。

2. 解决ZIP码格式错误的补位问题

你遇到的问题是因为Dataprep界面上的可视化替换对话框默认是按纯文本匹配,不支持正则表达式,所以得用自定义公式里的REGEXP_REPLACE函数来实现正则替换,具体步骤如下:

假设你的目标是:找到列中包含3位数字的片段,在其前面加上'12'(比如把123变成12123,或者把ABC123XYZ变成ABC12123XYZ),可以这样操作:

  1. 在Dataprep的操作栏里,选择添加转换 > 自定义公式。
  2. 针对你的ZIP码列(比如叫zip_code),输入对应的REGEXP_REPLACE公式:
    • 如果整列都是3位数字的情况(比如123要变成12123):
      REGEXP_REPLACE(zip_code, '^(\d{3})$', '12$1')
      
      这里^(\d{3})$匹配整列的3位数字,$1表示引用匹配到的3位数字,替换后就是12加上原来的3位数字。
    • 如果列内容中包含3位数字的片段,要在该片段前加12:
      REGEXP_REPLACE(zip_code, '(\d{3})', '12$1')
      
    • 如果你的{start}{digit}{3}{end}是指“任意开头内容+3位数字+任意结尾内容”,要在3位数字前插入12并保留前后内容:
      REGEXP_REPLACE(zip_code, '^(.*?)(\d{3})(.*)$', '$112$2$3')
      
  3. 点击应用,就能得到你想要的补位结果了。

简单来说,可视化替换适合简单文本替换,正则相关的复杂替换一定要用REGEXP_REPLACE这类函数来实现,别在替换对话框里浪费时间啦~

内容的提问来源于stack exchange,提问作者user40551

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:53:57