PROBLEM

The Python parser in the Field Calculator returns incorrect results

Last Published: April 25, 2020

Description

In ArcMap, when the Python parser is used in the Field Calculator to carry out a division operation, integers are returned instead of decimals.

An example of the Python expression is as follows:

!VEHICLE_THEFT!/!POPULATION!

The division operation using the Field Calculator returns 0 for all fields.

[O-Image]

Cause

This is by design. Python 2.x is designed to return integers when dividing whole numbers regardless of the field type. For example, 1/9=0.

Solution or Workaround

In the attribute table, create a float type field. This allows Python to return a decimal in the result. After creating the new field, apply the Python script.

  1. Create a new field type as float in the attribute table.
    1. Open ArcMap.
    2. Right-click the selected layer in the Table Of Contents, and select Open Attribute Table.
[O-Image]
  1. Click the Table options drop-down, and select Add Field.
[O-Image] [O]
  1. In the Add Field dialog box, set the field name, and select Float as the field type, and click OK.
[O-Image]
  1. Apply the Python script.
    1. Right-click the new field, and select Field Calculator.
[O-Image]
  1. If a warning on calculating outside of an edit session displays, click Yes.
  2. In the Field Calculator, type the script highlighted below.
float(!FieldName1!/!FieldName2!)
Note:
 The code provided is for the input of the type float.
  1. Click OK.
[O-Image]

    Article ID: 000012400

    Software:
    • ArcMap 10 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