Delete Field (Data Management)


Deletes one or more fields from a table, feature class, feature layer, or raster dataset.


  • Fields cannot be deleted from nonnative, read-only data formats in ArcGIS, such as VPF and CAD datasets.


DeleteField(in_table, drop_field)
ParameterExplanationData Type

The table containing the fields to be deleted. The existing input table will be modified.

Mosaic Layer; Raster Layer; Table View

The fields to be dropped from the input table. Only nonrequired fields may be deleted.


Derived Output

NameExplanationData Type

The updated dataset.

Table View; Raster Layer; Mosaic Layer

Code sample

DeleteField example (Python window)

The following Python window script demonstrates how to use the DeleteField tool in immediate mode:

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.CopyFeatures_management("majorrds.shp", "C:/output/majorrds_copy.shp")
                             ["STREET_NAM", "LABEL", "CLASS"])
DeleteField example 2 (stand-alone script)

The following stand-alone script demonstrates how to use the DeleteField tool:

# Name:
# Description: Delete several fields from a feature class
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inFeatures = "accident.dbf"
outFeatureClass = "C:/output/new_accident.dbf"
dropFields = ["STREET_NAM", "LABEL", "CLASS"]
# Execute CopyFeatures to make a new copy of the feature class
#  Use CopyRows if you have a table
arcpy.CopyFeatures_management(inFeatures, outFeatureClass)
# Execute DeleteField
arcpy.DeleteField_management(outFeatureClass, dropFields)
DeleteField example 3 (stand-alone script)

Use DeleteField to clear all unnecessary fields from a feature class or table.

# Name:
# Description: Delete unrequired fields from a feature class or table.
# Import system modules
import arcpy
# Get user-supplied input and output arguments
inTable = arcpy.GetParameterAsText(0)
updatedTable = arcpy.GetParameterAsText(1)

# Describe the input (need to test the dataset and data types)
desc = arcpy.Describe(updatedTable)

# Make a copy of the input (so we can mantain the original as is)
if desc.datasetType == "FeatureClass":
    arcpy.CopyFeatures_management(inTable, updatedTable)
    arcpy.CopyRows_management(inTable, updatedTable)

# Use ListFields to get a list of field objects
fieldObjList = arcpy.ListFields(updatedTable)

# Create an empty list that will be populated with field names        
fieldNameList = []

# For each field in the object list, add the field name to the
#  name list.  If the field is required, exclude it, to prevent errors
for field in fieldObjList:
    if not field.required:

# dBASE tables require a field other than an OID and Shape.  If this is
#  the case, retain an extra field (the first one in the original list)
if desc.dataType in ["ShapeFile", "DbaseTable"]:
    fieldNameList = fieldNameList[1:]

# Execute DeleteField to delete all fields in the field list. 
arcpy.DeleteField_management(updatedTable, fieldNameList)


Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

Related topics