Eliminar campo (Administración de datos)

Resumen

Elimina uno o varios campos de una tabla, una clase de entidad, una capa de entidad o un dataset ráster.

Uso

  • Los campos no se pueden eliminar de formatos de datos de sólo lectura o no nativos de ArcGIS, como los datasets de CAD y VPF.

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla de entrada

La tabla que contiene los campos que se eliminarán. Se modificará la tabla de entrada existente.

Mosaic Layer; Raster Layer; Table View
Eliminar el campo

Los campos que se eliminarán de la tabla de entrada. Sólo se pueden eliminar los campos no obligatorios.

Field

Salida derivada

EtiquetaExplicaciónTipo de datos
Actualizar tabla de entrada

El dataset actualizado.

Vista de tabla; Capa ráster; Capa de mosaico

arcpy.management.DeleteField(in_table, drop_field)
NombreExplicaciónTipo de datos
in_table

La tabla que contiene los campos que se eliminarán. Se modificará la tabla de entrada existente.

Mosaic Layer; Raster Layer; Table View
drop_field
[drop_field,...]

Los campos que se eliminarán de la tabla de entrada. Sólo se pueden eliminar los campos no obligatorios.

Field

Salida derivada

NombreExplicaciónTipo de datos
out_table

El dataset actualizado.

Vista de tabla; Capa ráster; Capa de mosaico

Muestra de código

Ejemplo de DeleteField (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función DeleteField en el modo inmediato:

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"])
Ejemplo 2 de DeleteField (script independiente)

El siguiente script independiente muestra cómo utilizar la función DeleteField.

# 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)
Ejemplo 3 de DeleteField (script independiente)

Utilice la función DeleteField para eliminar todos los campos que no sean necesarios de una tabla o clase de entidad.

# Description: Delete unnecessary 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(inTable)
# 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)

Entornos

Casos especiales

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados