1 votos

Cómo añadir "0" a varias partes del valor del texto en la calculadora de campo con Python

Tengo valores en una columna de texto que son los siguientes:

000_100

100_200

...

1000_1100

1100_1200

Quiero que se lea:

0000_0100

0100_0200

...

1000_1100

1100_1200

Quiero que todos los valores tengan el mismo número de caracteres, por ejemplo 9. Los números de las centenas separados por el "_" necesitan un "0" delante para que esto se cumpla. He visto que puedo usar zfill para añadir un "0" al principio, pero ¿hay alguna forma de especificar dónde poner un segundo "0"?

6voto

Jon M Puntos 206

El zfill junto con un poco de división/unión básica de cadenas, le permitirán hacer esto con mucha facilidad:

def update_text(old_text):
    new_text_parts = [num.zfill(4) for num in old_text.split('_')]
    new_text = '_'.join(new_text_parts)
    return new_text

Si prefiere no molestarse con una función en el bloque de código de la calculadora de campo, puede simplificar esto (como comentó Mike T) a una sola expresión:

'_'.join(num.zfill(4) for num in !field!.split('_'))

1voto

Alex Tereshenkov Puntos 13433

Si está utilizando la calculadora de campos, puede crear un nuevo campo de tipo texto y calcular el campo a ser:

def updateValue(textField):
  newval = textField.split('_')
  if len(newval[0]) == 3:
    newval[0] = '0' + newval[0]
  if len(newval[1]) == 3:
    newval[1] = '0' + newval[1]
  total_val = newval[0] + '_' + newval[1]
  return total_val

Recuerde utilizar el bloque Avanzado como se indica en el Calcular ejemplos de campo (mira la sección Uso de bloques de código).

updateValue(!your_text_field!)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X