Feld löschen (Datenmanagement)

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

  • Sie können entweder die zu löschenden Felder oder die beizubehaltenden Felder angeben.

    • Um Felder zu löschen, geben Sie über den Parameter Feld(er) die zu löschenden Felder an, und legen Sie den Parameter Methode auf die Option Felder löschen fest.
    • Um Felder beizubehalten, geben Sie über den Parameter Feld(er) die beizubehaltenden Felder an, und legen Sie den Parameter Methode auf 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
Feld(er)

Die zu löschenden oder beizubehaltenden Felder der Eingabetabelle, je nachdem, welche Angaben im Parameter Methode gemacht wurden. Nur Felder, die nicht erforderlich sind, können gelöscht werden.

Field
Methode
(optional)

Gibt an, ob die Felder im Parameter Feld(er) gelöscht oder beibehalten werden.

  • Felder löschenDie Felder im Parameter Feld(er) werden gelöscht. Dies ist die Standardeinstellung.
  • Felder beibehaltenDie Felder im Parameter Feld(er) 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 Felder im Parameter drop_field 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 zu löschenden oder beizubehaltenden Felder der Eingabetabelle, je nachdem, welche Angaben im Parameter method gemacht wurden. Nur Felder, die nicht erforderlich sind, können gelöscht werden.

Field
method
(optional)

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

  • DELETE_FIELDSDie im Parameter drop_field angegebenen Felder werden gelöscht. Dies ist die Standardeinstellung.
  • KEEP_FIELDSDie Felder im Parameter drop_field 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 von angegebenen Feldern verwenden.

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

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion DeleteField zum Beibehalten der angegebenen Felder verwendet wird.

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

Verwenden Sie die Funktion DeleteField zum Löschen aller nicht benötigten 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.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)