如何检测 Pandas 数据框中几乎重复的位置?
How to Detect Almost Duplicate Locations in a Pandas Dataframe?
我有一个包含地理编码地址的 Pandas 数据框。我想检测任何具有 almost 相同纬度和经度的地址,例如纬度和经度都在 0.0001 度以内。我想在新字段中记录结果:"Possible Duplicate" 或 "Unique"。
举个例子。鉴于以下内容:
ID Latitude Longitude
A 31.26418 -86.36509
B 44.52456 -79.52941
C 45.48913 -87.77436
D 54.03550 -85.87823
E 37.05611 -83.53684
F 53.26993 -85.28143
G 45.48910 -87.77440
H 51.60626 -83.33459
输出应该是:
ID Latitude Longitude Status
A 31.26418 -86.36509 Unique
B 44.52456 -79.52941 Unique
C 45.48913 -87.77436 Possible Duplicate
D 54.03550 -85.87823 Unique
E 37.05611 -83.53684 Unique
F 53.26993 -85.28143 Unique
G 45.48910 -87.77440 Possible Duplicate
H 51.60626 -83.33459 Unique
注意:这不是像这样的组合类型问题:
执行此操作的最 pythonic 方法是什么?
您可以将纬度和经度值四舍五入到小数点后 4 位(按照您的建议,直到 0.0001),然后继续检查重复项。
df['Status'] = 'Unique'
df.loc[df[df.loc[:, ['Latitude', 'Longitude']].round(4).duplicated(keep=False)].index, 'Status'] = 'Possible duplicate'
我有一个包含地理编码地址的 Pandas 数据框。我想检测任何具有 almost 相同纬度和经度的地址,例如纬度和经度都在 0.0001 度以内。我想在新字段中记录结果:"Possible Duplicate" 或 "Unique"。
举个例子。鉴于以下内容:
ID Latitude Longitude
A 31.26418 -86.36509
B 44.52456 -79.52941
C 45.48913 -87.77436
D 54.03550 -85.87823
E 37.05611 -83.53684
F 53.26993 -85.28143
G 45.48910 -87.77440
H 51.60626 -83.33459
输出应该是:
ID Latitude Longitude Status
A 31.26418 -86.36509 Unique
B 44.52456 -79.52941 Unique
C 45.48913 -87.77436 Possible Duplicate
D 54.03550 -85.87823 Unique
E 37.05611 -83.53684 Unique
F 53.26993 -85.28143 Unique
G 45.48910 -87.77440 Possible Duplicate
H 51.60626 -83.33459 Unique
注意:这不是像这样的组合类型问题:
执行此操作的最 pythonic 方法是什么?
您可以将纬度和经度值四舍五入到小数点后 4 位(按照您的建议,直到 0.0001),然后继续检查重复项。
df['Status'] = 'Unique'
df.loc[df[df.loc[:, ['Latitude', 'Longitude']].round(4).duplicated(keep=False)].index, 'Status'] = 'Possible duplicate'