Use Python UpdateCursor method to calculate values in a table based on another field

Last Published: April 25, 2020


Instructions provided describe how to use the Python UpdateCursor method to calculate values in a table based on another field.

Sometimes it is desirable to set attributes in a field to certain values based on the value of another field. In this case the UpdateCursor with conditional statements can be used to correctly set those values.


Pseudo Code:

1. Create a geoprocessor object.
2. Input the feature class to be updated.
3. Create the UpdateCursor object.
4. Iterate through the rows in the table and update the values based on the conditional statements.

# Import the standard modules and create the geoprocessor...
import arcgisscripting, os, string, sys, time
gp = arcgisscripting.create()

# Set the overwrite to true...
gp.overwriteoutput = 1

# The file to be updated...
fc = r"C:\Temp\testdata.shp"

# Create the UpdateCursor Object
cur = gp.updatecursor(fc)
row =

while row:
# Get the value of the field the calculation will be based on...
field1 = str(row.getvalue("FIELD1"))
# Conditional Statements
# if the field1 = value1, set field2 to equal NewVal1, etc...
if field1 == "Value1":
row.FIELD2 = "NewVal1"
row =
elif field1 == "Value2":
row.FIELD2 = "NewVal2"
row =
row.FIELD2 = "NewVal3"
row =

del cur, row, gp

    Article ID:000010171

    • ArcMap 9 x

    Receive notifications and find solutions for new or common issues

    Get summarized answers and video solutions from our new AI chatbot.

    Download the Esri Support App

    Related Information

    Discover more on this topic

    Get help from ArcGIS experts

    Contact technical support

    Download the Esri Support App

    Go to download options