Eliminar campo (Gestión de datos)
Resumen
Esta herramienta elimina uno o más campos de una tabla, una clase de entidad, una capa de entidad o un dataset ráster.
Uso
-
Esta herramienta se puede utilizar con cualquier tabla; clase de entidad de geodatabase personal, de archivos o de ArcSDE; cobertura; dataset ráster o shapefile.
-
Los campos no se pueden eliminar de formatos de datos de solo lectura o no nativos de ArcGIS, como los datasets de CAD y VPF.
-
El botón Agregar campo del parámetro Eliminar el campo se utiliza solo en ModelBuilder. En ModelBuilder, donde no se ejecutó la herramienta anterior, o sus datos derivados no existen, es probable que el parámetro Eliminar el campo no se complete con nombres de campo. El botón Agregar campo le permite agregar campos esperados para que pueda completar el cuadro de diálogo Eliminar campo y continuar creando el modelo.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_table |
La tabla que contiene los campos que se eliminarán. Se modificará la tabla de entrada existente. | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
drop_field [drop_field,...] | Los campos que se eliminarán de la tabla de entrada. Solo se pueden eliminar los campos no obligatorios. | Field |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la herramienta DeleteField en el modo inmediato.
import arcpy from arcpy import env 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"])
La siguiente secuencia de comandos independiente muestra cómo utilizar la herramienta DeleteField:
# Name: DeleteField_Example2.py # Description: Delete several fields from a feature class # Author: ESRI # Import system modules import arcpy from arcpy import env # Set environment settings 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)
Utilice DeleteField para eliminar todos los campos que no sean necesarios de una tabla o clase de entidad.
# Name: DeleteFields_clearfields.py # Description: Delete unrequired fields from a feature class or tble. # Import system modules import arcpy from arcpy import env 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 e: # If an error occurred, print line number and error message import traceback import sys tb = sys.exc_info()[2] print("Line {0}".format(tb.tb_lineno)) print(e.message)