นี่เป็นงานง่าย ๆ ที่ต้องทำ แต่ฉันไม่เข้าใจไวยากรณ์ที่ถูกต้อง
ฉันมีรูปร่างไฟล์ที่มีคุณลักษณะคล้ายกับที่แสดงต่อไปนี้:
FID Shape FIELD1 FIELD2 FIELD3 ...
0 Polygon 0 1 0
1 Polygon 3 0 7
2 Polygon 3 4 7
...
จำนวนเขตข้อมูลและชื่อของพวกเขาแตกต่างกันเสมอ
ฉันต้องการสร้างเขตข้อมูลใหม่ (ลองตั้งชื่อ NUM) และนับจำนวนศูนย์ในแต่ละแถว
ตัวอย่างผลลัพธ์:
FID Shape FIELD1 FIELD2 FIELD3 NUM
0 Polygon 0 1 0 2
1 Polygon 3 0 7 1
2 Polygon 3 4 7 0
ฉันรู้วิธีสร้างเขตข้อมูลใหม่ แต่ฉันยังไม่ชัดเจนในขั้นตอนถัดไป
รหัสการทำงาน:
#path is path to shape file
def a(path):
fields = arcpy.ListFields(path,"FID_*") #FID_* is wildcard to select a fields name
arcpy.AddField_management(path, "NUM", "SHORT") #create a field with name NUM
cursor= arcpy.UpdateCursor(path)
for row in cursor:
count=0
for field in fields:
a= row.getValue(field.name) #take a value
if a==0: #if value=0 then value=value+1
count+=1
row.setValue("NUM", count)
cursor.updateRow(row)
del row
del cursor
ขอบคุณblah238ตอนนี้ฉันสามารถกินงูหลามได้แล้ว!