CÓMO
Es habitual que una tabla de atributos contenga campos con valores comunes y valores únicos. Por lo tanto, a veces es necesario identificar los valores duplicados para crear un grupo entre capas, o bien identificar valores únicos para aislar la entidad.
Existen cuatro formas diferentes de identificar los valores duplicados:
Utilizar la herramienta Buscar idéntico
La herramienta Buscar idéntico crea una nueva tabla independiente. La herramienta identifica el ObjectID de una entidad y crea dos columnas, una que contiene el valor ObjectID de la entidad seleccionada y la otra que contiene números para marcar una entidad idéntica o única. Los registros idénticos tienen el mismo valor FEAT_SEQ, mientras que los registros no identificados tienen un valor secuencial. Los valores FEAT_SEQ no guardan relación con los Id. de los registros de entrada. Consulte ArcGIS Pro: Buscar idéntico (Administración de datos) para obtener más información.
Utilizar la función Calcular campo
La función isDuplicate() del analizador de Python permite rellenar un nuevo campo para identificar un valor como duplicado o único asignando un valor específico. Por ejemplo, los valores únicos y la primera aparición de varios valores se rellenan con 0 y todos los valores duplicados se marcan con un valor de 1. Los siguientes pasos describen cómo aplicar la función para este fin:
isDuplicate(!Field_Name_To_Verify!)
uniqueList = [] def isDuplicate(inValue): if inValue in uniqueList: return 1 else: uniqueList.append(inValue) return 0
Usar un script de Python independiente
El script crea un nuevo campo y rellena el campo con el número de valores duplicados.
import arcpy
arcpy.env.workspace=r"D:\test.gdb" infeature="sample_feature" field_in="sample_field" field_out="COUNT_"+field_in arcpy.AddField_management(infeature,field_out,"SHORT")
lista=[] cursor1=arcpy.SearchCursor(infeature) for row in cursor1: i=row.getValue(field_in) lista.append(i) del cursor1, row
cursor2=arcpy.UpdateCursor(infeature) for row in cursor2: i=row.getValue(field_in) occ=lista.count(i) row.setValue(field_out,occ) cursor2.updateRow(row) del cursor2, row print ("Hecho.")
A continuación se muestra el código completo:
import arcpy arcpy.env.workspace=r"D:\test.gdb" infeature="sample_feature" field_in="sample_field" field_out="COUNT_"+field_in arcpy.AddField_management(infeature,field_out,"SHORT") lista=[] cursor1=arcpy.SearchCursor(infeature) for row in cursor1: i=row.getValue(field_in) lista.append(i) del cursor1, row cursor2=arcpy.UpdateCursor(infeature) for row in cursor2: i=row.getValue(field_in) occ=lista.count(i) row.setValue(field_out,occ) cursor2.updateRow(row) del cursor2, row print ("Hecho.")
Utilizar la herramienta Resumen de estadísticas y unir la tabla
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri