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 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) sont supprimés ou conservés.

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

Sortie obtenue

ÉtiquetteExplicationType de données
Table en entrée mise à jour

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 sont supprimés ou conservés.

  • DELETE_FIELDSLes champs spécifiés par le paramètre drop_field sont supprimés. Il s’agit de l’option par défaut.
  • KEEP_FIELDSLes champs spécifiés par le paramètre drop_field sont conservés, tous les autres champs sont 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 la fonction 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 la fonction 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 la fonction 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 la fonction DeleteField (script autonome)

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

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes