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_management (in_table, drop_field)
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.
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") arcpy.DeleteField_management("C:/output/majorrds_copy.shp", ["STREET_NAM", "LABEL", "CLASS"])
The following stand-alone script demonstrates how to use the DeleteField tool:
# Name: DeleteField_Example2.py # 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)
Use DeleteField to clear all unnecessary fields from a feature class or table.
# Name: DeleteFields_clearfields.py # Description: Delete unrequired fields from a feature class or table. # Import system modules import arcpy try: # 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) else: 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: fieldNameList.append(field.name) # 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) except Exception as err: print(err.args)
- ArcGIS Desktop Basic: Yes
- ArcGIS Desktop Standard: Yes
- ArcGIS Desktop Advanced: Yes