ArcGIS Desktop – How to Use Field Calculator to Split Address into House Number and Street Name

addressarcgis-desktopfield-calculatorpython-parser

I have an ADDRESS field in a table with values like:

  • 1 MAIN ST
  • 20 SIDE AVE W
  • 300 JOHN DOE JR RD S

I want to use the field calculator to split the addresses and insert the parts into HOUSE_NUMBER and STREET_NAME fields.
Example:

  • 300 into HOUSE_NUMBER
  • JOHN DOE JR RD S into STREET_NAME

I also want the tool to check if the value that will be put into HOUSE_NUMBER is a valid integer (and ignore it if it isn't).

How can I do this?

Best Answer

This python script seems to do the trick. It allows the user to choose whether to return the house number or the street name to the field (by commenting-out the non-applicable ReturnType line).

def addressParser(inString):
    returnType = "House Number"
    #returnType = "Street Name"

    splitString = inString.split(' ',1)
    houseNumber = splitString[0]
    streetName = splitString[1]

    if returnType == "House Number":
        if houseNumber.isdigit():
            return houseNumber
        else:
            return
    if returnType == "Street Name":
        return streetName
    else:
        return
__esri_field_calculator_splitter__
addressParser(!ADDRESS!)

Sources:

Related Question