2017-04-14 66 views
-3

我已经搜索了解决方案,但没有找到一个完整的。我有几十个表格,每个表格都包含数千行功能。每当一个行要素被拆分时,另一个记录被创建,但新行(记录)仍旧具有旧的ASSETID。这意味着重复的ASSETID诞生了。是维护python脚本,可以找到所有重复的ASSETID,并使其为空?这将只剩下最初的ASSETID,我有一个脚本,随后会运行一个脚本,用一个新的随机生成的ASSETID填充ASSETID字段。我已经能够创建所有重复值的列表,一个值的出现次数列表,一个列上有一个'Y'如果值重复的新列,等等,但仍然能够删除重复字段值,同时保留行中的所有内容。删除(使空)重复的字段值

+0

我想你应该研究/在[gis.se]堆叠交换问这个来代替。 – PolyGeo

回答

0

由于您有一份重复的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: