Tengo datos de atributos con nombres de propietarios. Necesito seleccionar datos que contengan el apellido dos veces .
Por ejemplo, es posible que tenga un nombre de propietario que diga " BENNETT MCCARL & ARNETTE BENNETT ".
Me gustaría seleccionar cualquier fila en la tabla de atributos que tenga un apellido recurrente, como el ejemplo anterior. ¿Alguien sabe cómo puedo hacer para seleccionar esos datos?
Respuestas:
Expresión de calculadora de campo basada en esta respuesta
'================================================= =
Devolverá el recuento máximo de las mismas palabras en la cadena
fuente
Puede usar el módulo de colecciones de Python y un cursor de actualización para lograr esto. Este método agrega un nuevo campo y lo llena con un
1
si hay duplicados, de lo contrario,0
si no hay duplicados.fuente
¿Qué pasa con el uso
re
y laset
configuración de una bandera (aquí 0 y 1) en python? Extraeráre
todos los nombres (apellido y primer nombre) desdeBENNETT MCCARL & ARNETTE BENNETT
afuera&
. Para la coincidencia de patronesre
es de máxima prioridad: puede usarre
cómo desee.Y llama
sorter( !N! )
** Vea cómo
regex
agarra palabras enLIVE DEMOTenga en cuenta que todas estas respuestas resuelven el problema suponiendo que sus datos están desinfectados, es decir, que tienen un espacio adecuado entre las palabras, pero qué pasa si sus datos son algo así,
BENNETTMCCARL&ARNETTEBENNETT
entonces todos estos fallarían. En ese caso, es posible que necesite usar el algoritmo Suffix Tree y, afortunadamente, python tiene alguna biblioteca como aquí .fuente
Suponiendo que sus datos de origen son una FeatureClass / Table en una GeoDatabase de archivos, la siguiente consulta seleccionará las filas que necesita:
name
es el campo, simplemente lo llaméname
. La primera parte prueba el lado izquierdo, la segunda parte prueba el derecho. Esta consulta obviamente está codificada para buscar BENNETT, si necesita seleccionar por otros apellidos, con suerte, puede resolver qué necesita cambiar.fuente