Combinar valores de texto

Ao contrário das outras categorias, nos dados de texto há poucas restrições quanto aos tipos de valores que aparecem em uma célula. No aplicativo, esses dados normalmente são interpretados como o tipo de dados String. Consequentemente, encontrar valores de string com o mesmo significado pode ser um desafio, porque pequenas diferenças no conteúdo ou na estrutura podem invalidar uma correspondência.

Esta seção apresenta alguns métodos para corresponder valores de texto.

  • Alguns sistemas de destino podem impor limites em relação ao comprimento dos valores importados. Para mais informações sobre como gerenciar os comprimentos das strings, consulte Gerenciar comprimentos de string.

Dados de exemplo

No exemplo a seguir, observe que há pequenas diferenças entre os valores de string em cada linha do conjunto de dados. Essas diferenças são capturadas na coluna "Descrição".

  • Alguns caracteres, como tabulação, não podem ser representados neste formato.
StringDescrição
My StringString de base: "My String"
My String extraString de base + "extra"
My StringUm espaço na frente da string de base
My String Um espaço após a string de base
MyStringNenhum espaço entre as duas palavras da string de base
My StringDois espaços entre as duas palavras da string de base
My StringString de base + um caractere de tabulação
My String
String de base + um caractere de retorno
My String
String de base + um caractere de nova linha

Quando esses dados são importados, têm a seguinte aparência depois de alguma limpeza:

Figura: dados de exemplo após a importação

Observações:

  • você pode ver que o espaço em branco está demarcado nos dados importados. Especificamente o item de linha com dois espaços entre as palavras é representado com precisão na grade de dados.
  • novas linhas, retornos de carro, tabulações e outros caracteres não visíveis são representados com ícones.

Para normalizar esses valores de texto, você pode usar algumas das técnicas listadas nesta página a fim de corresponder os valores de string problemáticos neste conjunto de dados e corrigi-los, conforme necessário.

Controles mais precisos

Para um melhor controle da correspondência e limpeza de string, você pode aplicar transformações individuais à coluna de dados de string. As seções abaixo descrevem uma série de técnicas para identificar correspondências e limpar os dados.

Cortar strings

OBSERVAÇÃO: antes de iniciar a correspondência dos dados, você precisa executar uma transformação TRIM para remover espaços em branco do início e do fim da string, a não ser que eles sejam significativos para o sentido e o uso dos dados.

Ao transformar strings, uma etapa importante é remover espaços em branco do início e do fim delas. Para o conjunto de dados acima, você pode usar o seguinte comando para fazer isso:

set col: * value: TRIM($col)

É possível colar as etapas do Wrangle na página do Transformer.

Na transformação acima são usados os seguintes valores especiais, disponíveis para algumas transformações como set:

Valor especialDescrição
*Para a caixa de texto Colunas, use este caractere curinga para fazer referência a todas as colunas no conjunto de dados.
$colQuando várias colunas são referenciadas em uma transformação, é possível fazer referência à coluna de origem em um valor de substituição com este valor especial.

Os dados visualizados têm a seguinte aparência, em que cinco strings são modificadas e agora correspondem à string de base:

Figura: recortar os dados para melhorar as correspondências

Para remover todos os espaços em branco, incluindo os intermediários, você pode usar a função REMOVEWHITESPACE. Consulte Função REMOVEWHITESPACE.

Usar predefinições de valores ausentes ou incompatíveis

A linguagem da plataforma, Wrangle, oferece predefinições para identificar valores ausentes ou incompatíveis em uma seleção de dados.

Dica: no histograma de uma coluna, clique nas categorias ausentes ou incompatíveis para acionar um conjunto de sugestões.

Predefinição de valores ausentes: com a transformação a seguir, os valores de URL ausentes são substituídos pela string de texto http://www.example.com. O ISMISSING([Primary_WebSite_or_URL]) predefinido identifica as linhas em que faltam dados na coluna especificada:

set col: Primary_Website_or_URL value: 'http://www.example.com' row: ISMISSING([Primary_Website_or_URL])

Para mais informações, consulte Procurar dados ausentes.

OBSERVAÇÃO: se o tipo de dados da coluna for URL, a string de texto de substituição precisará ser um URL válido, caso contrário os novos dados serão registrados como incompatíveis com o tipo de dados.

Predefinição de valores incompatíveis: com essa transformação, são convertidos em 00000 todos os valores da coluna Zip que sejam incompatíveis com o tipo de dados Zipcode. Neste caso, a predefinição ISMISMATCHED(Zip, ['Zipcode']) identifica os valores incompatíveis na coluna, como comparados com o tipo de dados Zipcode:

set col: Zip value: '00000' row: ISMISMATCHED(Zip, ['Zipcode'])

Para mais informações, consulte Localizar dados incorretos.

Remover uma substring específica

Uma entrada nos dados de exemplo contém uma palavra adicional: My String extra. Você pode usar um comando de substituição simples para removê-la:

replace col:String with:'' on:' extra' global:true

O parâmetro global aplica a substituição a todas as instâncias encontradas em um valor de célula. Caso contrário, a substituição ocorrerá apenas na primeira instância.

Substituir espaços duplos

Há várias maneiras de remover espaços duplos, ou qualquer padrão, dos valores de texto. Para melhores resultados, convém limitar essa alteração a colunas individuais.

OBSERVAÇÃO: para corresponder padrões de string de curto comprimento, tenha o cuidado de definir o escopo da correspondência. Por exemplo, a fim de remover espaços duplos do conjunto de dados, você deve limitar as colunas somente àquelas que contêm valores de string. Se você aplicou a alteração a todas as colunas no conjunto de dados, o uso significativo do espaçamento duplo pode ter sido corrompido, como nos campos de dados JSON.

replace col: String on: ' ' with: ' ' global: true

Separar camelCase

CamelCase refere-se ao texto em que várias palavras são agrupadas removendo os espaços entre elas. Nos dados de exemplo, a entrada MyString é um camelCase.

OBSERVAÇÃO: expressões regulares são ferramentas de correspondência de padrões muito poderosas. Se elas forem mal especificadas em uma transformação, podem causar resultados inesperados. Use-as com cautela.

Use os padrões do Cloud Dataprep para separar as entradas CamelCase em uma coluna de valores. As seguintes transformações usam expressões regulares para identificar padrões em um conjunto de valores:

replace col:String with:'$1 $2' on:`({alpha})({upper})` global:true

A primeira transformação localiza todas as instâncias de letras maiúsculas seguidas de letras minúsculas. Cada instância é substituída por um espaço, seguido pela string encontrada $2. Para mais informações, consulte Correspondência de texto.

Reduzir strings por palavras

Remover a última palavra:

Por exemplo, você precisa remover a última palavra de uma string e o espaço antes dela. Use a seguinte transformação replace para fazer isso:

replace col:String with:'' on:` {alpha}+{end}`

No entanto, observe que a pontuação final não é capturada quando o comando anterior é visualizado. Por exemplo, os pontos finais, de exclamação e de interrogação no fim dos valores não são capturados no padrão do Cloud Dataprep. Para capturar esses valores, é preciso expandir o parâmetro on:

replace col:String with:'' on:` {alpha}+({[?.!;\)]}|){end}`

Na segunda versão, um grupo de captura foi inserido no meio do valor do parâmetro on, conforme especificado pelo conteúdo dos parênteses:

  • A notação de colchete e vírgula indica um conjunto de possíveis caracteres individuais que podem aparecer no padrão neste ponto.
    • Observe a barra invertida antes do parêntese direito no grupo de captura. Esse valor é usado para escapar um valor, de modo que esse parêntese seja interpretado como outro caractere, e não como o fim do grupo de captura.
  • A barra vertical (|) indica um operador OR lógico, o que significa que os caracteres individuais especificados podem ser exibidos ou o valor após a barra vertical.
  • Como o valor após a barra vertical está ausente, este grupo de captura encontra valores com ou sem pontuação no fim da linha.

Reduzir o número total de palavras:

Você precisa cortar cada valor em uma coluna até um máximo de duas palavras. Use o seguinte comando para identificar as duas primeiras palavras usando grupos de captura em um padrão Cloud Dataprep e, depois, escreva esse padrão de volta, descartando o restante do valor da coluna:

replace col:String with:'$1$2' on:`{start}({alpha}* )({alpha}*) ({any}*{end})`

Para o padrão on:

  • O padrão start identifica o início de cada valor na coluna String.
  • Os dois grupos de captura alpha identificam as duas primeiras palavras na string. Observe que o espaço após o segundo grupo de captura é especificado fora do grupo. Se ele fizesse parte do grupo de captura, um espaço final seria gravado no valor de substituição.
  • O grupo de captura final identifica o restante do valor na célula.
    • any captura qualquer caractere único.
    • O asterisco curinga captura todos os valores entre o caractere any e o end do valor.
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.