Supprimer un champ (Gestion des données)

Synthèse

Supprime un ou plusieurs champs d'une table, d'une classe d'entités, d'une couche d'entités ou d'un jeu de données raster.

Utilisation

  • Vous pouvez spécifier soit les champs à supprimer, soit les champs à conserver.

    • Pour supprimer des champs, utilisez le paramètre Champ(s) pour spécifier les champs à supprimer et définissez le paramètre Méthode sur l'option Supprimer les champs.
    • Pour conserver des champs, utilisez le paramètre Champ(s) pour spécifier les champs à conserver et définissez le paramètre Méthode sur l'option Conserver les champs.

  • Les champs ne peuvent pas être supprimés des formats de données en lecture seule non natifs dans ArcGIS, tels que les jeux de données VPF et DAO.

Paramètres

ÉtiquetteExplicationType de données
Table en entrée

Table contenant les champs à supprimer. La table en entrée existante est modifiée.

Mosaic Layer; Raster Layer; Table View
Champ(s)

Champs à supprimer ou à conserver dans la table en entrée, selon les indications du paramètre Méthode. Seuls les champs non obligatoires peuvent être supprimés.

Field
Méthode
(Facultatif)

Définit si les champs spécifiés par le paramètre Champ(s) seront supprimés ou conservés.

  • Supprimer des champsLes champs spécifiés par le paramètre Champ(s) seront supprimés. Il s’agit de l’option par défaut.
  • Conserver des champsLes champs spécifiés par le paramètre Champ(s) seront conservés, tous les autres champs seront supprimés.
  • Supprimer des champsLes champs spécifiés par le paramètre drop_field seront supprimés. Il s’agit de l’option par défaut.
  • Conserver des champsLes champs spécifiés par le paramètre drop_field seront conservés, tous les autres champs seront supprimés.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Mettre à jour la table en entrée

Jeu de données mis à jour.

Table View; Raster Layer; Mosaic Layer

arcpy.management.DeleteField(in_table, drop_field, {method})
NomExplicationType de données
in_table

Table contenant les champs à supprimer. La table en entrée existante est modifiée.

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

Champs à supprimer ou à conserver dans la table en entrée, selon les indications du paramètre method. Seuls les champs non obligatoires peuvent être supprimés.

Field
method
(Facultatif)

Définit si les champs spécifiés par le paramètre drop_field seront supprimés ou conservés.

  • DELETE_FIELDSLes champs spécifiés par le paramètre drop_field seront supprimés. Il s’agit de l’option par défaut.
  • KEEP_FIELDSLes champs spécifiés par le paramètre drop_field seront conservés, tous les autres champs seront supprimés.
String

Sortie obtenue

NomExplicationType de données
out_table

Jeu de données mis à jour.

Table View; Raster Layer; Mosaic Layer

Exemple de code

Exemple 1 d'utilisation de l'outil DeleteField (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction DeleteField pour supprimer les champs spécifiés.

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"])
Exemple 2 d'utilisation de l'outil DeleteField (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction DeleteField pour conserver uniquement les champs spécifiés.

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")
Exemple 3 d'utilisation de l'outil DeleteField (script autonome)

Le script autonome ci-dessous illustre l’utilisation de la fonction 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)
Exemple 4 d'utilisation de l'outil DeleteField (script autonome)

Utilisez la fonction DeleteField pour supprimer tous les champs inutiles d’une table ou d’une classe d’entités.

# 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)