1 votos

Haciendo que un campo/valor sea igual a otro campo/valor

He creado un nuevo campo llamado "SFX" en un shapefile llamado "myshape.shp":

input = r"C:\files\myshape.shp"
arcpy.AddField_management(input, "SFX", "TEXT", field_length=100)

Ahora hay un campo llamado "SFX" pero no hay valores en las celdas. Ahora, en ese mismo shapefile, tengo otro campo llamado "SUFFIX".

fields = [field.name for field in arcpy.ListFields(input)]
for field in fields:
    if field == 'SUFFIX':
        print field
>>>'SUFFIX'

Digamos que 'SUFFIX' tiene valores 'C', 'D', 'G', etc.... Lo que quiero hacer es, para cada fila en 'SFX' quiero que el valor de esa celda sea igual al valor de la celda correspondiente de 'SUFFIX'.

Sin crear listas complicadas usando un cursor, ¿cómo podría hacer eso usando UpdateCursor o la Calculadora de Campos?

4voto

LDomagala Puntos 1360

Insertando el código mostrado a continuación en tu declaración if debería funcionar.

# CalculateField_management (in_table, field, expression, {expression_type}, {code_block})
arcpy.CalculateField_management(in_table="myshape.shp",
                                field="SFX",
                                expression="!SUFFIX!",
                                expression_type="PYTHON_9.3",
                                code_block="")

4voto

Anton8000 Puntos 165

Si estás preguntando cómo calcular el campo SFX = campo SUFIJO entonces:

import arcpy
shapefile = r'C:\shapefile.shp'
fields = ['SFX','SUFFIX']
with arcpy.da.UpdateCursor(shapefile, fields) as cursor:
    for row in cursor:
        row[0]=row[1]
        cursor.updateRow(row)

Ejemplos como este se pueden encontrar si lees la sección de ayuda de da.UpdateCursor.

4voto

kervin Puntos 7620

Haga clic derecho en su campo de SUFIJO, Calculadora de campo.

En el bloque de código,

SFX = !SUFFIX!

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