操作方法
属性表可能包含多个具有空值的字段,默认情况下,将使用空格填充这些字段。 在某些情况下,如果未使用字符(不可空字段)填充这些字段,则某些工具或函数将不执行。
本文将介绍两种方法来替换属性表中的空值:通过替换属性表中的空值,或者通过替换单个列(字段)中的空值。
使用 ArcPy 模块来替换属性表中的空值
注: 以下脚本可以用于 ArcMap 的 Python 控制台中,或者用作独立脚本。
import arcpy
path = r'C:\Users\User\Test\Misc\Test.gdb\Testing'
fieldObs = arcpy.ListFields(path) fieldNames = []
for field in fieldObs: fieldNames.append(field.name) del fieldObs fieldCount = len(fieldNames)
with arcpy.da.UpdateCursor(path, fieldNames) as curU: for row in curU: rowU = row for field in range(fieldCount): if rowU[field] == None: rowU[field] = "0" curU.updateRow(rowU)
del curU
以下显示了完整脚本:
import arcpy path = r'C:\Users\User\Desktop\Misc\Piracy.gdb\Continents' fieldObs = arcpy.ListFields(path) fieldNames = [] for field in fieldObs: fieldNames.append(field.name) del fieldObs fieldCount = len(fieldNames) with arcpy.da.UpdateCursor(path, fieldNames) as curU: for row in curU: rowU = row for field in range(fieldCount): if rowU[field] == None: rowU[field] = "0" curU.updateRow(rowU) del curU
使用“计算字段”和 Python 解析程序替换单个字段中的空值
def updateValue(value): if value == None: return '0' else: return value
updateValue(!Field_Name!)
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序