If you're up for a little scripting in the Python window you could first run the Find Identical
tool under Data Management->General
that creates a table with a field that assigns duplicate sets, then run the code below and finally delete (by selection as mentioned in above answers) rows that are flagged as duplicates and have no information in the attribute field of interest. You'll have to create an is_dup
field in your polygon file as a short integer.
#assign variables of polygon and table from Find Identical tool output
my_shp = 'test_poly.shp'
my_tbl = 'test_poly_FindIdentical1.dbf'
#create count of each feature sequence from Find Identical table
recordHist={}
with arcpy.da.SearchCursor(my_tbl, ["IN_FID", "FEAT_SEQ"]) as rows:
for row in rows:
recordHist[row[1]]=recordHist.get(row[1], 0) + 1
#assign FIDs as dup or not (sequences with count>1 are duplicates)
idDupHist={}
with arcpy.da.SearchCursor(my_tbl, ["IN_FID", "FEAT_SEQ"]) as rows:
for row in rows:
if recordHist[row[1]]>1:
idDupHist[row[0]]='Y'
else:
idDupHist[row[0]]='N'
#update shape file
with arcpy.da.UpdateCursor(my_shp, ["FID","is_dup"]) as rows:
for row in rows:
if idDupHist[row[0]]=="Y":
row[1]=1
else:
row[1]=0
rows.updateRow(row)
polygonA
andpolygonB
are duplicates of each other and neither have data in the field of interest? If it is, I assume you'd want to keep one of them, right?