0

我在 Dataprep 中的邮政编码不匹配。我需要在输入不正确的列中添加两位数字。

在 Dataprep 中,我收到了替换建议:

'{start}{digit}{3}{end}' with ' '

在替换对话框中,我只能输入一个字符串,而不是'{start}{digit}{3}{end}'因为它将它作为文本读取。我该如何更换:

'{start}{digit}{3}{end}'12 + '{start}{digit}{3}{end}'

替换或插入都可以,但我还没有找到插入的方法。

有什么帮助吗?谢谢。

4

1 回答 1

0

您正在寻找的是Merge Transform。它允许两个将多个列或值合并到一个新列中,还允许在要合并的值之间插入分隔符。

根据您的问题,我了解您希望将数据值345转换为12345,即附加12为前缀。为此,您可以merge()像这样运行公式:

merge(['12',zip])

在这种情况下,zip只是要与 value 合并的列的名称12。在您的具体情况下写下您的专栏名称。

下图显示了运行merge()公式的结果。

在此处输入图像描述


更新:

假设您的数据中同时包含正确和错误的邮政编码,您可以应用条件逻辑函数IF来确定将哪个公式应用于您的数据。该IF()函数的工作原理如下:

IF(test_expression, true_expression, false_expression)

因此,在您的情况下,您应该评估列中项目的长度,并且仅12 当行中恰好有三个数字时才添加,正如您在评论中所说的那样。我使用的公式如下:

if(len(zip) == 3, merge(['12',zip]), zip)

结果(比较使用IF()[ right_new_zip列] 和不使用 [ error_new_zip列] 时的结果)如下:

在此处输入图像描述

最后,让我推荐您参考这个不错的文档页面,您将在其中找到有关 Dataprep 中使用的语言以及您可以发现有用的函数的所有信息,这些信息按类型(逻辑、聚合、字符串、日期等)分类。

于 2018-03-25T07:37:11.350 回答