删除(使为空)重复的字段值

2024-05-20 20:46:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经找到了解决这个问题的办法,但还没有找到一个完整的办法。我有几十个表,每个表包含数千行特征。每当分割线要素时,会创建另一条记录,但新线(记录)仍具有旧资产。这意味着一个复制资产诞生了。维护python脚本是否可以找到所有重复的ASSETID并使其为空?这将只留下原始的ASSETID,我有一个脚本,它将在以后运行,用一个新的随机生成的ASSETID填充ASSETID字段。我已经能够创建所有重复值的列表,一个值出现多少次的列表,表中的一个新列,如果值重复,它会有一个“Y”,等等,但是仍然能够删除重复的字段值,同时保留行中的所有其他值


Tags: 脚本列表记录特征资产段值要素办法
1条回答
网友
1楼 · 发布于 2024-05-20 20:46:39

因为您有一个重复的ASSETID列表,所以可以使用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:

相关问题 更多 >