Tengo una columna de cadenas que siempre empiezan con los dos primeros caracteres que son números, como 39 o 07, etc. En una nueva columna quiero procesar la columna original de forma que sustituya cualquiera de esos dos primeros números que no sean 39 por un 39, pero asegurándome de que los caracteres de cadena restantes siguen ahí. Es decir, buscar y reemplazar pero indexando los dos primeros caracteres. Quiero usar el comando .replace() pero no estoy seguro de cómo enlazar el índice, el comando replace y una sentencia If Than Else para que funcione.
En la calculadora de campo sería así:
replace(!Permit_num!)
bloque de código:
import re
def replace(val):
if (val[0:1] == "07"):
return re.sub ('07','39'+val[2:], val)
elif (val[0:1] == "10"):
return re.sub ('10','39'+val[2:], val)
elif (val[0:1] == "11"):
return re.sub ('11','39'+val[2:], val)
elif (val[0:1] == "19"):
return re.sub ('19','39'+val[2:], val)
elif (val[0:1] == "24"):
return re.sub ('24','39'+val[2:], val)
elif (val[0:1] == "27"):
return re.sub ('27','39'+val[2:], val)
elif (val[0:1] == "34"):
return re.sub ('34','39'+val[2:], val)
elif (val[0:1] == "35"):
return re.sub ('35','39'+val[2:], val)
elif (val[0:1] == "39"):
return re.sub ('39','39'+val[2:], val)
elif (val[0:1] == "50"):
return re.sub ('50','39'+val[2:], val)
elif (val[0:1] == "54"):
return re.sub ('54','39'+val[2:], val)
elif (val[0:1] == "56"):
return re.sub ('56','39'+val[2:], val)
elif (val[0:1] == "99"):
return re.sub ('99','39'+val[2:], val)
He intentado lo anterior, pero no funciona, obtener un error 99999 y dice que mi campo que estoy calculando en no es nullable. El nuevo campo es también una cadena.