EXEMPLO: transformações Replacement

Este exemplo ilustra os diferentes usos das seguintes transformações para substituir ou extrair dados de célula:

  • set: determina os valores a serem usados em uma coluna predefinida. Consulte Transformação Set.

    Dica: use a transformação derive para gerar uma coluna com um conjunto definido de valores. Consulte Transformação Derive.

  • replace: substitui um padrão ou um literal de string que aparece nos valores de uma coluna por uma string específica. Consulte Transformação Replace.
  • extract: extrai um valor com base em padrões de uma coluna e o armazena em uma coluna nova. Consulte Transformação Extract.

Fonte:

O conjunto de dados a seguir contém informações de contato que foram coletadas por sua plataforma de marketing a partir das ações realizadas pelos visitantes em seu site. É necessário limpar esses dados e prepará-los para uso em uma plataforma de análise.

LeadIdLastNameFirstNameTitlePhoneRequest
LE160301001JonesCharlesDiretor técnico executivo (CTO)415-555-1212reg
LE160301002LyonsEdward 415-012-3456download de artigo
LE160301003MartinMaryCEO510-555-5555excluir conta
LE160301004SmithTaliaEngenheiro510-123-4567avaliação gratuita

Transformação:

Coluna Title: por exemplo, primeiro você constata que faltam alguns dados. A plataforma de análise reconhece o valor "#MISSING#" da string como indicador de um valor ausente. Então, você clica na barra de valores ausentes na coluna "Title". Em seguida, seleciona o cartão de sugestão Replace. Observe que a substituição padrão é um valor nulo, por isso clique em Modify para atualizá-lo:

set col: Title value: IF(ISMISSING([Title]),'#MISSING#',Title)

Coluna Request: na coluna "Request", você percebe que é preciso limpar a entrada reg. Adicione a seguinte transformação, que substitui esse valor:

replace col:Request with:'Registration' on:`{start}reg{end}`

A transformação acima usa um padrão do Cloud Dataprep como a expressão do parâmetro on:. Essa expressão indica correspondência do início do valor da célula, o literal de string reg, e do final do valor da célula, que corresponde somente com valores de células completos de reg.

Essa transformação funciona muito bem na amostra, mas o que acontece se o valor for Reg, com um R maiúsculo? Esse valor pode não ser substituído. Para melhorar a transformação, modifique-a usando o seguinte padrão do Cloud Dataprep no parâmetro on que captura as diferenças no uso de maiúsculas e minúsculas:

replace col:Request with:'Registration' on:`{start}{[R|r]}eg{end}`

Adicione a transformação acima à receita. Então você percebe que, nos valores na coluna Request, a primeira letra de cada palavra precisa estar em maiúscula:

set col:Request value:PROPER(Request)

Agora, todos os valores são exibidos com a primeira letra de cada palavra em maiúscula.

Coluna Phone: é possível que tenham surgido problemas com os valores da coluna Phone. Nos Estados Unidos, o prefixo 555 é usado apenas para coletar informações. Os números de telefone com esse prefixo são inválidos.

Na grade de dados, você seleciona a primeira instância de 555 na coluna. No entanto, ele seleciona todas as instâncias desse padrão, incluindo aquelas que você não quer modificar. Nesse caso, selecione a instância semelhante de 555 na outra linha. Nos cartões de sugestão, clique na transformação "Replace".

Observe, no entanto, que a transformação "Replace" padrão também destacou o segundo padrão de 555 em uma instância, o que pode ser um problema em outros números de telefone não exibidos na amostra. É necessário modificar o padrão de seleção para essa transformação. No parâmetro on: abaixo, o padrão do Cloud Dataprep foi modificado para corresponder apenas às instâncias de 555 que aparecem no segundo segmento, no formato de número de telefone:

replace col: Phone on: `{start}%{3}-555-%*{end}` with: '#INVALID#' global: true

A construção com o caractere curinga foi adicionada (%*). É possível adicionar um padrão que combine com os últimos quatro caracteres exatamente (%{4}), mas esse padrão de combinação não capturaria a possibilidade de um número de telefone que tivesse um ramal no final. A expressão acima faz isso.

OBSERVAÇÃO: a transformação acima cria valores que não correspondem ao tipo de dados de número de telefone. Nesse exemplo, no entanto, essas ausências de correspondência são entendidas como benéficas para o sistema que usa o resultado do Google Dataprep.

Coluna LeadId: é possível que a coluna do identificador principal (LeadId) contenha algumas informações incorporadas: um valor de data e um identificador da instância no dia. As etapas a seguir podem ser seguidas para detalhar essas informações. O primeiro cria uma coluna de trabalho separada com essas informações, o que nos permite preservar a coluna original não modificada:

derive type:single value:LeadId as:'LeadIdworking'

Agora é possível trabalhar fora desta coluna para criar novas colunas. Use a seguinte transformação "Replace" para remover os dois caracteres principais, que não são necessários para as novas colunas:

replace col:LeadIdworking with:'' on:'LE'

As informações da data agora estão perfeitamente contidas nos primeiros caracteres da coluna de trabalho. Para extrair esses valores para uma nova coluna, use a seguinte expressão:

extract col: LeadIdworking on: `{start}%{6}`

A nova coluna LeadIdworking2 agora contém apenas as informações da data. A limpeza dessa coluna requer a reformatação dos dados, redigitando-os como um tipo Datetime e, em seguida, aplicando a função dateformat para formatá-los de maneira satisfatória. Essas etapas são deixadas como um exercício separado.

Por enquanto, vamos renomear a coluna:

rename col:LeadIdworking1 to:'LeadIdDate'

Na primeira coluna de trabalho, agora é possível remover as informações da data usando a seguinte expressão:

replace col: LeadIdworking on: `{start}%{6}` with: ''

É possível renomear esta coluna para indicar que é um identificador diário:

rename col:LeadIdworking to:'LeadIdDaily'

Resultados:

LeadIdLeadIdDailyLeadIdDateLastNameFirstNameTitlePhoneRequest
LE160301001001160301JonesCharlesDiretor técnico executivo (CTO)#INVALID#Registro
LE160301002002160301LyonsEdward#AUSENTE#415-012-3456Download de artigo
LE160301003003160301MartinMaryCEO#INVALID#Excluir conta
LE160301004004160301SmithTaliaEngenheiro510-123-4567Avaliação gratuita
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.