Feld löschen (Data Management)

Zusammenfassung

Mit diesem Werkzeug können Sie ein oder mehrere Felder aus einer Tabelle, einer Feature-Class, einem Feature-Layer oder einem Raster-Dataset löschen.

Verwendung

    Vorsicht:

    Mit diesem Werkzeug werden die Eingabedaten geändert. Weitere Informationen und Strategien zur Vermeidung unerwünschter Datenänderungen finden Sie unter Werkzeuge, die Eingabedaten ändern oder aktualisieren.

  • Sie können entweder die Felder, die gelöscht werden sollen, oder die Felder, die beibehalten werden sollen, auswählen.

    • Wenn Sie Felder löschen möchten, geben Sie über den Parameter Felder die zu löschenden Felder an, und legen Sie für den Parameter Methode die Option Felder löschen fest.
    • Wenn Sie Felder beibehalten möchten, geben Sie über den Parameter Felder die beizubehaltenden Felder an, und legen Sie für den Parameter Methode die Option Felder beibehalten fest.

  • Felder können nicht aus schreibgeschützten Datenformaten gelöscht werden, die nicht aus ArcGIS stammen, z. B. aus VPF- und CAD-Datasets.

Parameter

BeschriftungErläuterungDatentyp
Eingabetabelle

Die Tabelle, die die zu löschenden Felder enthält. Die vorhandene Eingabetabelle wird geändert.

Mosaic Layer; Raster Layer; Table View
Felder

Die Felder, die aus der Eingabetabelle gelöscht oder darin beibehalten werden sollen, wie im Parameter Methode angegeben. Nur Felder, die nicht erforderlich sind, können gelöscht werden.

Field
Methode
(optional)

Gibt an, ob die vom Parameter Felder angegebenen Felder gelöscht oder beibehalten werden.

  • Felder löschenDie im Parameter Felder angegebenen Felder werden gelöscht. Dies ist die Standardeinstellung.
  • Felder beibehaltenDie im Parameter Felder angegebenen Felder werden beibehalten; alle anderen Felder werden gelöscht.
  • Felder löschenDie im Parameter drop_field angegebenen Felder werden gelöscht. Dies ist die Standardeinstellung.
  • Felder beibehaltenDie im Parameter drop_field angegebenen Felder werden beibehalten; alle anderen Felder werden gelöscht.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Eingabetabelle aktualisieren

Das aktualisierte Dataset.

Table View; Raster Layer; Mosaic Layer

arcpy.management.DeleteField(in_table, drop_field, {method})
NameErläuterungDatentyp
in_table

Die Tabelle, die die zu löschenden Felder enthält. Die vorhandene Eingabetabelle wird geändert.

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

Die Felder, die aus der Eingabetabelle gelöscht oder darin beibehalten werden sollen, wie im Parameter method angegeben. Nur Felder, die nicht erforderlich sind, können gelöscht werden.

Field
method
(optional)

Gibt an, ob die im Parameter drop_field angegebenen Felder gelöscht oder beibehalten werden.

  • DELETE_FIELDSDie im Parameter drop_field angegebenen Felder werden gelöscht. Dies ist die Standardeinstellung.
  • KEEP_FIELDSDie im Parameter drop_field angegebenen Felder werden beibehalten; alle anderen Felder werden gelöscht.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_table

Das aktualisierte Dataset.

Table View; Raster Layer; Mosaic Layer

Codebeispiel

DeleteField: Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion DeleteField zum Löschen bestimmter Felder verwenden.

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"])
DeleteField: Beispiel 2 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion DeleteField verwenden, um nur bestimmte Felder beizubehalten.

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")
DeleteField – Beispiel 3 (eigenständiges Skript)

Das folgende eigenständige Skript veranschaulicht, wie die Funktion DeleteField verwendet wird.

# 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)
DeleteField: Beispiel 4 (eigenständiges Skript)

Verwenden Sie die Funktion DeleteField zum Löschen aller unnötigen Felder aus einer Feature-Class oder Tabelle.

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

Verwandte Themen