Tengo un campo C_CODE
y me gustaría contar las ocurrencias de los valores en ese campo que comenzarán con el cero delante de los números de un dígito:Ej: 01,02 y normalmente para los números de dos dígitos Ej:..09,10,11,etc
Se busca salida:
C_CODE RANK C_CODE_FINAL #Info#
17 01 1701 # RANK counts how many times each value in C_CODE exists
15 01 1501 # C_CODE_FINAL is a concatenation of the other fields
23 01 2301
29 01 2901
15 02 1502
19 01 1901
17 02 1702
15 03 1503
37 01 3701
y luego concatenar los campos en C_CODE_FINAL
.
Probado:
fc = path to shp
field = "C_CODE"
#Create dictionary to store unique values
count_values = {}
arcpy.AddField_management (fc, 'rank', 'LONG')
with arcpy.da.SearchCursor (fc, field) as cursor:
for row in cursor:
if not row[0] in count_values.keys():
count_values[row[0]] = 1
else:
count_values[row[0]] += 1
Devuelve una columna de rango llena de ceros aunque hay muchos valores que existen varias veces. Además tienen que empezar por 01 para los valores que aparecen por primera vez.