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

    Precaución:

    Esta herramienta modifica los datos de entrada. Consulte Herramientas que modifican o actualizan los datos de entrada para obtener más información y estrategias para evitar cambios de datos no deseados.

  • Puede especificar los campos que desea eliminar o los que desea conservar.

    • Para eliminar campos, utilice el parámetro Campos para especificar los campos que desea eliminar y establezca el parámetro Método en la opción Eliminar campos.
    • Para conservar campos, utilice el parámetro Campos para especificar los campos que desea conservar y establezca el parámetro Método en la opción Conservar campos.

  • 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
Campos

Los campos que deben eliminarse o conservarse de la tabla de entrada, tal como se especifica en el parámetro Método. Solo se pueden eliminar los campos no obligatorios.

Field
Método
(Opcional)

Especifica si los campos especificados por el parámetro Campos se eliminarán o se conservarán.

  • Eliminar camposSe eliminarán los campos especificados por el parámetro Campos. Esta es la opción predeterminada.
  • Mantener camposLos campos especificados por el parámetro Campos se conservarán; todos los demás campos se eliminarán.
  • Eliminar camposSe eliminarán los campos especificados por el parámetro drop_field. Esta es la opción predeterminada.
  • Mantener camposLos campos especificados por el parámetro drop_field se conservarán; todos los demás campos se eliminarán.
String

Salida derivada

EtiquetaExplicaciónTipo de datos
Actualizar tabla de entrada

El dataset actualizado.

Table View; Raster Layer; Mosaic Layer

arcpy.management.DeleteField(in_table, drop_field, {method})
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 deben eliminarse o conservarse de la tabla de entrada, tal como se especifica en el parámetro method. Solo se pueden eliminar los campos no obligatorios.

Field
method
(Opcional)

Especifica si los campos especificados por el parámetro drop_field se eliminarán o se conservarán.

  • DELETE_FIELDSSe eliminarán los campos especificados por el parámetro drop_field. Esta es la opción predeterminada.
  • KEEP_FIELDSLos campos especificados por el parámetro drop_field se conservarán; todos los demás campos se eliminarán.
String

Salida derivada

NombreExplicaciónTipo de datos
out_table

El dataset actualizado.

Table View; Raster Layer; Mosaic Layer

Muestra de código

Ejemplo de DeleteField 1 (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la función DeleteField para eliminar campos especificados.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.CopyFeatures("majorrds.shp", "C:/output/majorrds_copy.shp")
arcpy.management.DeleteField("C:/output/majorrds_copy.shp", 
                             ["STREET_NAM", "LABEL", "CLASS"])
Ejemplo de DeleteField 2 (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la función DeleteField para eliminar solamente los campos especificados.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.CopyFeatures("majorrds.shp", "C:/output/majorrds_copy.shp")

arcpy.management.DeleteField("C:/output/majorrds_copy.shp", 
                             ["STREET_ALIAS", "DISTRICT_ID"], "KEEP_FIELDS")
Ejemplo 3 de DeleteField (secuencia de comandos independiente)

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

# Name: DeleteField_Example3.py
# Description: Keep several fields from a feature class and delete all the rest of the fields
  
# 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"
fields = ["STREET_NAM", "LABEL", "CLASS"]
method = "KEEP_FIELDS"
 
# Run CopyFeatures to make a new copy of the feature class
#  Use CopyRows if you have a table
arcpy.management.CopyFeatures(inFeatures, outFeatureClass)
 
# Run DeleteField
arcpy.management.DeleteField(outFeatureClass, fields, method)
Ejemplo de DeleteField 4 (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 you can maintain the original as is)
if desc.datasetType == "FeatureClass":
    arcpy.management.CopyFeatures(inTable, updatedTable)
else:
    arcpy.management.CopyRows(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. Exclude required fields 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:]

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