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

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

    • Para eliminar campos, use el parámetro Campo(s) para especificar los campos a eliminar y cambie el parámetro Método a la opción Eliminar campos.
    • Para conservar los campos, utilice el parámetro Campo(s) para especificar los campos que desea conservar y cambie el parámetro Método a la opción Mantener 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 se desea eliminar o conservar en la tabla de entrada, tal y 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 Campo(s) se eliminarán o conservarán.

  • Eliminar camposLos campos especificados por el parámetro Campo(s) se eliminarán. Esta es la opción predeterminada.
  • Conservar camposLos campos especificados por el parámetro Campo(s) se conservarán; el resto de campos se eliminarán.
  • Eliminar camposLos campos especificados por el parámetro drop_field se eliminarán. Esta es la opción predeterminada.
  • Conservar camposLos campos especificados por el parámetro drop_field se conservarán; el resto de 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 se eliminarán o conservarán de la tabla de entrada, tal y 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 conservarán.

  • DELETE_FIELDSLos campos especificados por el parámetro drop_field se eliminarán. Esta es la opción predeterminada.
  • KEEP_FIELDSLos campos especificados por el parámetro drop_field se conservarán; el resto de 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 1 de DeleteField (ventana de Python)

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

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 (ventana de Python)

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

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_ALIAS", "DISTRICT_ID"], "KEEP_FIELDS")
Ejemplo 3 de DeleteField (script 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"
 
# 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, fields, method)
Ejemplo 4 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 you can maintain 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. 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:]

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