我在Dataprep中输入的邮政编码不匹配。我需要在不正确输入的列中添加两位数。
在Dataprep中,我得到了一个替换建议:
'{start}{digit}{3}{end}' with ' '
在替换对话框中,我只能输入一个字符串,而不是'{start}{digit}{3}{end}'
,因为它将其作为文本读取。我该如何更换:
'{start}{digit}{3}{end}'
的 12 + '{start}{digit}{3}{end}'
更换或插入,要么可以工作,但我还没有找到插入的方法。
有任何帮助吗?感谢。
答案 0 :(得分:0)
您要找的是Merge Transform。它允许两个将多个列或值合并到一个新列中,还允许在要合并的值之间插入分隔符。
根据您的问题,我们了解您希望将345
之类的数据值转换为12345
,即附加12
作为前缀。为此,您可以像这样运行merge()
公式:
merge(['12',zip])
在这种情况下,zip
只是您要与值12
合并的列的名称。在特定情况下写下专栏的名称。
下图显示了运行merge()
公式的结果。
<强> 更新: 强>
如果您的数据中包含正确和错误的邮政编码,则可以应用conditional logic function IF
以确定应用于您的数据的公式。 IF()
函数的工作方式如下:
IF(test_expression, true_expression, false_expression)
因此,在您的情况下,您应该评估列中项目的长度,并且只有当行中正好有三位数时才添加12
,正如您在评论。我使用的公式如下:
if(len(zip) == 3, merge(['12',zip]), zip)
结果(使用IF()
[ right_new_zip 列时]和不使用[ wrong_new_zip 列]时的比较)是这些:
最后,让我向您推荐这个很好的documentation page,在那里您将找到有关Dataprep中使用的语言所需的所有信息以及您可以找到的有用的功能,按类型分类(逻辑,聚合,字符串,日期等。)。