行の削除(Delete Rows) (データ管理)
サマリ
すべての行または選択した行のサブセットを入力から削除します。
入力行がフィーチャクラスまたはテーブルの場合は、すべての行が削除されます。行が選択されていないレイヤまたはテーブル ビューが入力行の場合は、すべての行が削除されます。
使用法
-
[入力行] パラメータには、INFO テーブルまたは dBASE テーブル、ArcSDE、ファイル、あるいはパーソナル ジオデータベース テーブルまたはフィーチャクラス、シェープファイル、レイヤ、またはテーブル ビューを指定できます。
-
このツールをフィーチャ データで使用する場合は、ジオメトリを含む行全体が削除されます。
-
レイヤまたはテーブル ビューが入力で、レイヤまたはテーブル ビューで行が選択されていない場合、すべての行が削除されます。テーブルが入力の場合は、すべての行が削除されます。
注意:多数の行を含むテーブルからすべての行を削除する場合は、時間がかかる可能性があります。テーブルのすべての行を削除したい場合は、[テーブルの切詰め(Truncate Table)] ツールの使用を検討する必要があります。このツールを使用する際の重要な注意事項については、[テーブルの切詰め(Truncate Table)] ツールのマニュアルをご参照ください。
-
ArcMap で作業しているときに、行が選択されているレイヤまたはテーブル ビューを入力として使用する場合、編集セッションでこのツールを使用すると、元に戻す/やり直し機能を使用して [行の削除(Delete Rows)] 操作を元に戻すことができます。
構文
パラメータ | 説明 | データ タイプ |
in_rows |
行を削除するフィーチャクラス、レイヤ、テーブル、またはテーブル ビュー。 | Table View |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで DeleteRows 関数を使用する方法を示しています。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.CopyRows_management("accident.dbf", "C:/output/accident2.dbf")
arcpy.DeleteRows_management("C:/output/accident2.dbf")
次のスタンドアロン スクリプトは、式に基づいて行を削除するために DeleteRows 関数を使用する方法を示しています。
# Name: DeleteRows_Example2.py
# Description: Delete rows from a table based on an expression
# Import system modules
import arcpy
from arcpy import env
try:
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inTable = "accident.dbf"
outTable = "C:/output/new_accident.dbf"
tempTableView = "accidentTableView"
expression = arcpy.AddFieldDelimiters(tempTableView, "Measure") + " = 0"
# Execute CopyRows to make a new copy of the table
arcpy.CopyRows_management(inTable, outTable)
# Execute MakeTableView
arcpy.MakeTableView_management(outTable, tempTableView)
# Execute SelectLayerByAttribute to determine which rows to delete
arcpy.SelectLayerByAttribute_management(tempTableView, "NEW_SELECTION", expression)
# Execute GetCount and if some features have been selected, then execute
# DeleteRows to remove the selected rows.
if int(arcpy.GetCount_management(tempLayer).getOutput(0)) > 0:
arcpy.DeleteRows_management(tempLayer)
except Exception as e:
# If an error occurred, print line number and error message
import traceback
import sys
tb = sys.exc_info()[2]
print("Line {0}".format(tb.tb_lineno))
print(e.message)