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

    Attention :

    Cet outil modifie les données en entrée. Pour plus d’informations et connaître les stratégies permettant d’empêcher les modifications de données indésirables, reportez-vous à la rubrique Outils qui modifient ou mettent à jour les données en entrée.

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

    • Pour supprimer les champs, utilisez le paramètre Fields (Champs) pour spécifier les champs à supprimer et définissez le paramètre Method (Méthode) sur l’option Delete Fields (Supprimer les champs).
    • Pour conserver les champs, utilisez le paramètre Fields (Champs) pour spécifier les champs à conserver et définissez le paramètre Method (Méthode) sur l’option Keep Fields (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
Champs

Champs à supprimer ou à conserver de la table en entrée comme indiqué par le paramètre Method (Méthode). Seuls les champs non obligatoires peuvent être supprimés.

Field
Méthode
(Facultatif)

Indique si les champs spécifiés par le paramètre Fields (Champs) seront supprimés ou conservés.

  • Supprimer des champsLes champs spécifiés par le paramètre Fields (Champs) seront supprimés. Il s’agit de l’option par défaut.
  • Conserver les champsLes champs spécifiés par le paramètre Fields (Champs) 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 les 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 de la table en entrée comme indiqué par le paramètre method. Seuls les champs non obligatoires peuvent être supprimés.

Field
method
(Facultatif)

Indique 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 d’utilisation 1 de l’outil DeleteField  (fenêtre Python)

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

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

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

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")
Exemple d’utilisation 3 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"
 
# 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)
Exemple d’utilisation 4 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.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)