【问题标题】:Replace a value on one data set with a value from another data set with a dynamic lookup使用动态查找将一个数据集上的值替换为另一个数据集的值
【发布时间】:2020-04-11 04:47:03
【问题描述】:

这个问题主要与 Alteryx 相关,但是如果它可以在 Python 中完成,或者使用 R 工具在 Alteryx 工作流程中的 R 中完成,那么它也可以。

我有两个数据集。

地址(包含地址信息:Line1、Line2、City、State、Zip)

USPS(包含 USPS 缩写:Street to ST、Boulevard 到 BLVD 等)

目标:查看 Line1 的地址数据集上的字符串。如果它包含 USPS 数据集中的一种街道类型,我想用 USPS 数据集中不同列中的正确缩写替换字符串的那部分。

例如,123 Main Street 将变为 123 Main St

我尝试过的: 导入了两个数据集。 使用当字段不同时输出所有字段的指令将两个数据集合并。 添加了一个公式,但这是我卡住的地方。到目前为止,它的内容是:

if [Addr1] Contains(Sting, Target)

不确定如何在 USPS 中查找其中一个值。我也不确定是否可以进行这种动态查找。

如果这可以在 python 中完成(我知道非常基本的 Python,所以我还没有代码,因为除了导入数据我不知道从哪里开始)我可以在 Alteryx 中使用 python。

任何帮助都会很棒。如果您需要更多信息,请告诉我。

提前谢谢你。

【问题讨论】:

    标签: python r alteryx


    【解决方案1】:

    可以使用的整体逻辑在这里:Using str_detect (or some other function) and some way to loop through a list to essentially perform a vlookup

    但是,为了扩展到 Alteryx,您需要添加 Alteryx R 工具。此外,需要更改一些代码以使用 Alteryx 喜欢的语法。

    读入数据:

    read.Alteryx('#Link Number', mode = 'data.frame')
    

    之后,上面的链接问题将为逻辑提供整体框架。在此重申:

    usps[] = lapply(usps, as.character)
    ##Copies the original address data to a new column that will
    ##be altered.  Preserves the orignal formatting for rollback 
    ##if necessary
    vendorData$new_addr1 = as.character(vendorData$Addr1)
    
    ##Loops through the dictionary replacing all of the common names
    ##with their USPS approved abbreviations for the Addr1 field.
    for(i in 1:nrow(usps)) {
      vendorData$new_addr1 = str_replace_all(
        vendorData$new_addr1,
        pattern = paste0("\\b", usps$Abbreviation[i], "\\b"),
        replacement = usps$USPS_Abbrv_updated[i]
      )
    }
    

    最后,为了能够看到输出,我们需要编写一个语句,将其输出到 R 工具的 5 个输出槽之一。这是代码:

    write.Alteryx(data, #)
    

    【讨论】:

      【解决方案2】:

      使用 Alteryx 中的查找替换工具。此工具类似于查找。此外,请使用 Alteryx 社区作为解决这些类型问题的方法。

      将地址数据集输入到查找替换工具的顶部锚点中,将 USPS 数据集输入到底部锚点中。您需要使用查找字段查找地址字段的任何部分并将其替换为缩写字段。如果您需要跨地址数据集中的多个字段执行此操作,那么您可以复制此逻辑,或者您可以使用记录 ID 工具转置,在一个字段上运行此逻辑,然后交叉表回到原始模式。这是您想要在 Alteryx 中掌握的高级配方。

      https://help.alteryx.com/current/FindReplace.htm

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-14
        • 2021-11-27
        • 2020-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多