フィールドの削除(Delete Field) (データの管理)

サマリ

テーブル、フィーチャクラス、フィーチャ レイヤ、またはラスタ データセットから 1 つ以上のフィールドを削除します。

使用法

構文

DeleteField_management (in_table, drop_field)
パラメータ説明データ タイプ
in_table

削除するフィールドを含むテーブル。既存の入力テーブルが変更されます。

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

入力テーブルから削除するフィールド。不要なフィールドのみを削除できます。

Field

コードのサンプル

DeleteField(フィールドの削除)の例(Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで DeleteField(フィールドの削除)ツールを使用する方法を示しています。

import arcpy
from arcpy import env
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(フィールドの削除)の例 2(スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、DeleteField(フィールドの削除)ツールの使用方法を示しています。

# Name: DeleteField_Example2.py
# Description: Delete several fields from a feature class
# Author: ESRI
  
# Import system modules
import arcpy
from arcpy import env
 
# Set environment settings
env.workspace = "C:/data"
 
# Set local variables
inFeatures = "accident.dbf"
outFeatureClass = "C:/output/new_accident.dbf"
dropFields = ["STREET_NAM", "LABEL", "CLASS"]
 
# 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, dropFields)
DeleteField(フィールドの削除)の例 3(スタンドアロン スクリプト)

DeleteField(フィールドの削除)を使用して、フィーチャクラスまたはテーブルから不要なすべてのフィーチャを消去します。

# Name: DeleteFields_clearfields.py
# Description: Delete unrequired fields from a feature class or tble.
# Author: ESRI
 
# Import system modules
import arcpy
from arcpy import env
 
try: 
    # 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(updatedTable)
 
    # Make a copy of the input (so we can mantain 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.  If the field is required, exclude it, 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)
          
except Exception, e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "Line %i" % tb.tb_lineno
    print e.message

環境

関連項目

ライセンス情報

ArcView: はい
ArcEditor: はい
ArcInfo: はい

7/10/2012