删除(使 null)重复的字段值
Posted
技术标签:
【中文标题】删除(使 null)重复的字段值【英文标题】:Delete (make null) duplicate field values 【发布时间】:2017-04-14 19:33:39 【问题描述】:我已经为此寻找解决方案,但没有找到完整的解决方案。我有几十个表,每个表都包含数千个线特征。每当分割线要素时,都会创建另一条记录,但新线(记录)仍然具有旧的资产 ID。这意味着一个重复的资产 ID 诞生了。是否可以找到所有重复的资产 ID 并使它们为空的维护 python 脚本?这将只留下原始的资产 ID,我有一个脚本将在之后运行,它将用一个新的、随机生成的资产 ID 填充资产 ID 字段。我已经能够创建所有重复值的列表、一个值出现次数的列表、表上的一个新列,如果值重复,则该列具有“Y”等,但尚未能够删除重复项字段值,同时保留行中的所有其他内容。
【问题讨论】:
我认为你应该在 Geographic Information Systems Stack Exchange 上研究/询问这个问题。 【参考方案1】:由于您有一个重复的ASSETID
s 列表,您可以使用ArcPy UpdateCursor 仅修改该属性。
with arcpy.da.UpdateCursor(feature_class, ["ASSETID"]) as cursor:
for row in cursor:
if row[0] in unique_id_list: # if the ASSETID is in the list
row[0] = None
cursor.updateRow(row)
然而,这将修改 所有 具有该 ASSETID
值的行,而不是保持“原始”不变。您需要原始的附加列表(通过另一个唯一标识符,例如OBJECTID
)并排除这些,例如:
if row[0] in unique_id_list and row[1] not in original_id_list:
【讨论】:
以上是关于删除(使 null)重复的字段值的主要内容,如果未能解决你的问题,请参考以下文章