Eu tenho dados de atributo com nomes de proprietários. Preciso selecionar dados que contenham o sobrenome duas vezes .
Por exemplo, posso ter um nome de proprietário que leia " BENNETT MCCARL & ARNETTE BENNETT ".
Gostaria de selecionar quaisquer linhas na tabela de atributos que tenham um sobrenome recorrente, como no exemplo acima. Alguém sabe como eu posso selecionar esses dados?
Respostas:
Expressão da calculadora de campo com base nesta resposta
'=================================================== =
Ele retornará a contagem máxima de mesmas palavras na string
fonte
Você pode usar o módulo de coleções Python e um Cursor de Atualização para fazer isso. Esse método adiciona um novo campo e o preenche com a
1
se houver duplicatas, caso contrário,0
se não houver duplicatas.fonte
Que tal usar
re
eset
definir uma flag (aqui 0 e 1) em pythonre
- extrairá todos os nomes (último e primeiro) deBENNETT MCCARL & ARNETTE BENNETT
fora&
. Para a correspondência de padrõesre
é da mais alta prioridade, você pode usarre
como quiser.E ligar
sorter( !N! )
** Veja como
regex
agarra as palavras emLIVE DEMOObserve que todas essas respostas tratam do problema, supondo que seus dados sejam higienizados, ou seja, tenham espaço adequado entre as palavras, mas e se seus dados forem algo parecido
BENNETTMCCARL&ARNETTEBENNETT
, tudo isso falhará. Nesse caso, você pode precisar usar o algoritmo Suffix Tree e, felizmente, o python possui alguma biblioteca como aqui .fonte
Supondo que os dados de origem sejam uma FeatureClass / Table em um arquivo GeoDatabase, a consulta a seguir selecionará as linhas necessárias:
name
é o campo, eu acabei de chamá-loname
. A primeira parte está testando o lado esquerdo e a segunda parte está testando o direito. Esta consulta é obviamente codificada para procurar BENNETT, se você precisar selecionar por outros sobrenomes, esperamos poder descobrir o que precisa ser alterado.fonte