FAQ
ArcPy (ArcMap): 同一属性値を持つレコードごとに連番を振る

ナレッジ番号:3330 | 登録日:2023/05/29 | 更新日:2023/11/08

概要

同じ属性値を持つフィーチャごとに連番を振るための、ArcPy のサンプル コードをご紹介いたします。

サンプル コード

ここでは、全国市区町村界のポリゴン フィーチャがもつ「KEN」フィールドごとに、「Sub_ID」フィールドに対して連番を入力した例を挙げます。

# coding:cp932
import arcpy

# 変数の設定
fc = r"C:\gis_work\TestData.gdb\Japan"
category_fld = 'KEN' # グルーピングして入力するためのテキスト フィールド
subID_fld='Sub_ID'   # 連番の入力先となるフィールド

vals = []
flds = [category_fld,subID_fld] 

rec=0
def autoIncrement():
    global rec
    pStart = 1
    pInterval = 1 
    if (rec == 0): 
        rec = pStart 
    else: 
        rec+= pInterval 
    return rec

curU = arcpy.da.SearchCursor(fc,flds)
for row in curU:
    vals.append(row[0])
del curU
vals=set(vals)

for i in vals:
    curU=arcpy.da.UpdateCursor(fc,flds,category_fld+" = '%s'"%i)
    for row in curU:
        #row[1] = i+" "+str(autoIncrement())
        row[1] = str(autoIncrement())
        curU.updateRow(row)
    del curU
    rec=0

print u"処理が終わりました。"
※ こちらはサンプル コードであり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。なお、サンプル コードを利用して生じたいかなる損害についても弊社では責任を負いかねます。

メタデータ

種類

製品